উত্তরীয় সহ ব্যবহারকারী পরিচালনার জন্য শিল্পের বর্তমান অবস্থা কী?


10

আমি লিনাক্স সিস্টেমের ক্রমবর্ধমান পশুপালের পরিচালনার জন্য এখন ~ 3 বছর ধরে জবাবদিহিতা, দুর্দান্ত সাফল্যের জন্য ব্যবহার করছি। আমার প্রশ্নে ডুব দেওয়ার আগে আমার কিছু প্রসঙ্গ সেট করা দরকার।

আমার দিনের কাজের অংশ হিসাবে, আমি বিভিন্ন সংস্থার জন্য সিস্টেম ডিজাইন, স্থাপনা এবং রক্ষণাবেক্ষণ করি যা সবাই একক উদ্যোগ / ইনকিউবেটর সংস্থার ছত্রছায়ায় পরিচালনা করে। আমাদের পোর্টফোলিও সংস্থাগুলির মধ্যে প্রচুর সংশ্লেষ রয়েছে এবং আমরা এটি বলতে পারি না যে কেবলমাত্র এ, বি এবং সি ব্যবহারকারীদের কোম্পানির এক্স এর সিস্টেমে অ্যাক্সেসের প্রয়োজন হবে। তাদের পাশাপাশি সংস্থা ওয়াইয়ের সিস্টেমে অ্যাক্সেসের প্রয়োজন হতে পারে। এটি প্রতিটি কোম্পানির জবাবদিহিত পরিবেশ একটি ভিন্ন গিট রিপোজিটরিতে বাস করে তা জটিল। এর অর্থ হ'ল ব্যবহারকারীদের বিভিন্ন কোম্পানির সিস্টেমে মোতায়েন করার জন্য প্রচুর কোড ডুপ্লিকেশন রয়েছে। আমি নির্দিষ্ট কোম্পানির সিস্টেমে ব্যবহারকারীদের নিযুক্ত করার জন্য এই জাতীয় কোডের অনুলিপি / আটকানো শেষ করি:

- name: add several users
  user: >
    name={{ item.name }}
    state=present
    groups={{ item.groups }}
    uid={{ item.uid }}
    password={{ item.password }}
    shell=/bin/bash
  with_items:
    - { name: 'user1', groups: 'ssh-access,sudo', uid: '501', password: '<redacted>' }
    - { name: 'user2', groups: 'ssh-access,sudo', uid: '502', password: '<redacted>' }
  tags: users

- name: authorized_keys - user1 
  action: authorized_key user=user1 key="{{ lookup('file', 'pubkeys/user1') }}" manage_dir=yes
  tags:
    - pubkeys
    - users

- name: authorized_keys - user2 
  action: authorized_key user=user2 key="{{ lookup('file', 'pubkeys/user2') }}" manage_dir=yes
  tags:
    - pubkeys
    - users

এটি পরিচালনা করার জন্য যখন আমার <5 জন ব্যবহারকারী ছিল তখন এটি ঠিক আছে, তবে ব্যবহারকারীর বেস বাড়ার সাথে সাথে কী রোটেশন, নতুন পাসওয়ার্ড ইত্যাদির সাহায্যে জিনিসগুলি আপ টু ডেট রাখা আরও বেশি উত্সাহী হয়ে ওঠে

ব্যাকস্টোরি এবং প্রসঙ্গ সেট করে আমার প্রশ্নটি সহ:

ধরে নেওয়া যে একটি কেন্দ্রীভূত প্রমাণীকরণ সিস্টেম (এলডিএপি, ইত্যাদি) ব্যবহার করা কোনও বিকল্প নয়, আমি কীভাবে কেন্দ্রীয়ভাবে ব্যবহারযোগ্য ডেটাবেস তৈরি করতে সক্ষম হব যা বিভিন্ন উত্তরযোগ্য প্লেবুক গ্রাস করতে পারে? আমি ব্যবহারকারী, ইউডস, পাসওয়ার্ড হ্যাশ এবং পাবলিক কীগুলির একটি কেন্দ্রীয় তালিকা বজায় রাখতে সক্ষম হতে এবং তারপরে প্রতিটি কোম্পানির হোস্টগুলিতে ব্যবহারকারীদের (কাস্টম প্রতি হোস্ট গ্রুপ সদস্যতার সাথে) স্থাপন করতে সক্ষম হতে চাই।

আমি কিছু খেলার কাঠামোর মতো কল্পনা করছি:

- name: Deploy users
  user_management:
    - { name: "user1", groups: "sudo" }
    - { name: "user1", groups: "sudo" }

... যেখানে প্রতিটি ব্যবহারকারীর ইউআইডি, হ্যাশ এবং পাবলিক কী কেন্দ্রীয় তালিকা থেকে টানতে হবে এবং যথারীতি মোতায়েন করা হবে।

তো, আমার কাছে কী বিকল্প আছে? আমি বেশ কিছুক্ষণ ধরে এটিকে ঘিরে ফেলছি, এবং আমি ইতিমধ্যে যা করছি তার থেকে ভাল কিছু নিয়ে আসতে সক্ষম হইনি। আমি আমার ব্যবহারকারীর ডাটাবেস ধরে রাখতে একটি কাস্টম ফ্যাক্টস ফাইল দিয়ে কিছু করতে পারি?

উত্তর:


8

আপনার নাটক এবং আপনার ডেটা আলাদা করতে হবে।

আমার সমস্ত ভূমিকা, তথ্যাদি ইত্যাদির সাথে আমার কাছে একটি একক রেপো রয়েছে যা গ্রাহক সিস্টেমের বিস্তৃত পরিসরে স্থাপন করে। আমি নিশ্চিত করি যে সমস্ত ভূমিকা পুনরায় পরিবর্তনযোগ্য এবং ডেটা মুক্ত। ইন host_vars/fqdn.ymlবা group_vars/customer_name.ymlআমি ডেটা যে গ্রাহক বা দূরবর্তী সিস্টেমে অনন্য নির্ধারণ করুন।

হিসাবে প্রয়োজন আমার ভূমিকা সর্বাধিক সময়ের প্রসারিত হয় এবং এর পরিবর্তে সবকিছু করছেন from roles/foo/main.ymlআমি roles/foo/debian-foo.ymlএবং roles/foo/openbsd-foo.ymlযে শুধুমাত্র যখন অপারেটিং সিস্টেম বা অন্য শর্ত ম্যাচ অন্তর্ভুক্ত করা হয়।

সরলীকৃত, roles/adduser/main.ymlএটি অন্তর্ভুক্ত করতে পারে:

- user: name={{ item.name }} ...
  with_items:
  - customer_users

এবং group_vars/ACME.ymlএটি অন্তর্ভুক্ত করতে পারে:

customer_users:
- name: sausage
   uid: 32153
- name: beans
   uid: 1024

আপনার ক্ষেত্রে যতক্ষণ না রোলস ফোল্ডারটি একটি ভাগ করা সাবমডিউল যা আপনার সমস্ত গ্রাহকের কাছে অভিন্ন, ততক্ষণ প্রতিটি তাদের গিট রেপোতে পৃথকভাবে উত্তরযোগ্য পরিবেশ রাখা ঠিক হবে।


এটি আমাকে সঠিক দিকে নির্দেশ করে। ধন্যবাদ অ্যালেক্স! আমি এখনও ব্যবহারকারীর নাম / কী / ইউআইডি / ইত্যাদির একক ডাটাবেস বজায় রাখতে পারি যাতে আমি বিভিন্ন ভূমিকা এবং / অথবা গোষ্ঠী থেকে রেফারেন্স করতে পারি, তবে আমি কীভাবে এটি সম্পাদন করতে পারি সে সম্পর্কে আমার কিছু ধারণা আছে বলে আমি মনে করি।
EEAA

1
@EEAA রোলগুলি মনে রাখবেন / সমস্ত ফাইলের সাথে একটি ডিরেক্টরি হতে পারে যাতে আপনি সহজেই ভূমিকা / সমস্ত / কর্মী.আইএমএল, ভূমিকা / সমস্ত / foo.yml ইত্যাদি কেন্দ্রীভূত করতে পারেন
অ্যালেক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.