আমি লিনাক্স সিস্টেমের ক্রমবর্ধমান পশুপালের পরিচালনার জন্য এখন ~ 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" }
... যেখানে প্রতিটি ব্যবহারকারীর ইউআইডি, হ্যাশ এবং পাবলিক কী কেন্দ্রীয় তালিকা থেকে টানতে হবে এবং যথারীতি মোতায়েন করা হবে।
তো, আমার কাছে কী বিকল্প আছে? আমি বেশ কিছুক্ষণ ধরে এটিকে ঘিরে ফেলছি, এবং আমি ইতিমধ্যে যা করছি তার থেকে ভাল কিছু নিয়ে আসতে সক্ষম হইনি। আমি আমার ব্যবহারকারীর ডাটাবেস ধরে রাখতে একটি কাস্টম ফ্যাক্টস ফাইল দিয়ে কিছু করতে পারি?