সম্ভবত এটি করার সর্বোত্তম উপায় - এই ধারণাটি গ্রহণ করে যে আপনি স্কটডড দ্বারা সরবরাহিত NOPASSWD সমাধানটি ব্যবহার করতে পারবেন না তা হ'ল মিনেসিয়া ভুটকোচির সমাধানটি উত্তরীয় ভল্টের সাথে মিশ্রিত করা ।
উদাহরণস্বরূপ, আপনার কাছে এমন কোনও প্লেবুক থাকতে পারে:
- hosts: all
vars_files:
- secret
tasks:
- name: Do something as sudo
service: name=nginx state=restarted
sudo: yes
এখানে আমরা এমন একটি ফাইল অন্তর্ভুক্ত করছি যাতে secret
আমাদের সুডো পাসওয়ার্ড থাকবে।
এই ফাইলটির একটি এনক্রিপ্ট করা সংস্করণ তৈরি করতে আমরা উত্তরযোগ্য-ভল্ট ব্যবহার করব:
ansible-vault create secret
এটি আপনাকে একটি পাসওয়ার্ড জিজ্ঞাসা করবে, তারপরে ফাইলটি সম্পাদনা করার জন্য আপনার ডিফল্ট সম্পাদকটি খুলুন open আপনি ansible_sudo_pass
এখানে রাখতে পারেন।
যেমন secret
::
ansible_sudo_pass: mysudopassword
সংরক্ষণ করুন এবং প্রস্থান করুন, এখন আপনার কাছে একটি এনক্রিপ্ট করা secret
ফাইল রয়েছে যা আপনি আপনার প্লেবুক চালানোর সময় উত্তরটি ডিক্রিপ্ট করতে সক্ষম। দ্রষ্টব্য: আপনি ফাইলটি সম্পাদনা করতে পারেন ansible-vault edit secret
(এবং ফাইলটি তৈরি করার সময় আপনি যে পাসওয়ার্ডটি ব্যবহার করেছিলেন তা প্রবেশ করুন)
ধাঁধাটির চূড়ান্ত খণ্ডটি হ'ল উত্তর সরবরাহ করা --vault-password-file
যা এটি আপনার secret
ফাইলটি ডিক্রিপ্ট করার জন্য ব্যবহার করবে ।
নামক একটি ফাইল তৈরি করুন vault.txt
এবং এতে আপনার secret
ফাইল তৈরির সময় আপনি যে পাসওয়ার্ডটি ব্যবহার করেছিলেন তা রেখে দিন । পাসওয়ার্ডটি ফাইলের একক লাইন হিসাবে স্ট্রিং হওয়া উচিত।
উত্তরযোগ্য ডক্স থেকে:
.. নিশ্চিত করুন যে ফাইলটিতে অনুমতিগুলি এমন যে অন্য কেউ আপনার কী অ্যাক্সেস করতে পারে না এবং আপনার কী উত্স নিয়ন্ত্রণে যুক্ত করতে পারে না
শেষ অবধি: আপনি এখন আপনার প্লেবুকটি এরকম কিছু দিয়ে চালাতে পারেন
ansible-playbook playbook.yml -u someuser -i hosts --sudo --vault-password-file=vault.txt
উপরেরটি নিম্নলিখিত ডিরেক্টরি বিন্যাসটি ধরে নিচ্ছে:
.
|_ playbook.yml
|_ secret
|_ hosts
|_ vault.txt
আপনি এখানে উত্তরযোগ্য ভল্ট সম্পর্কে আরও পড়তে পারেন: https://docs.ansible.com/playbooks_vault.html