Ansible কনফিগারেশন ফাইল (ansible.cfg) Ansible-এর জন্য বিভিন্ন সেটিংস এবং ডিফল্ট ভ্যারিয়েবল নির্ধারণ করে, যা Ansible প্লেবুক, মডিউল এবং ইনভেন্টরি ব্যবহারের সময় কার্যকর হয়। সাধারণত, এটি Ansible প্রজেক্টের রুট ডিরেক্টরি বা /etc/ansible/ ডিরেক্টরিতে থাকে। আপনি চাইলে আপনার হোম ডিরেক্টরিতে বা কোনো নির্দিষ্ট প্রজেক্টের ডিরেক্টরিতে এটি রাখতে পারেন।
ansible.cfg ফাইলের বিভিন্ন সেকশন থাকে, যা Ansible এর আচরণ কনফিগার করতে ব্যবহৃত হয়। নিচে একটি সাধারণ কনফিগারেশন ফাইলের উদাহরণ এবং প্রতিটি সেকশনের ব্যাখ্যা দেওয়া হলো:
একটি সাধারণ ansible.cfg ফাইলের উদাহরণ:
[defaults]
inventory = ./inventory
remote_user = ansible_user
ask_pass = false
private_key_file = ~/.ssh/id_rsa
host_key_checking = false
timeout = 30
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
pipelining = true
ansible.cfg এর সেকশন এবং সেটিংস:
১. [defaults]: এটি Ansible-এর সাধারণ ডিফল্ট সেটিংস এবং অপশন নির্ধারণ করে।
inventory: ইনভেন্টরি ফাইলের লোকেশন নির্ধারণ করে যেখানে হোস্টগুলোর তথ্য থাকে।remote_user: রিমোট হোস্টে লগইন করার জন্য ডিফল্ট ইউজার।ask_pass: যদি সত্য (true) হয়, তবে পাসওয়ার্ড চাইবে; SSH key ব্যবহার করলে এটিfalseরাখা হয়।private_key_file: SSH প্রাইভেট কী এর পাথ নির্ধারণ করে।host_key_checking: যদিfalseকরা হয়, তাহলে Ansible হোস্ট কী চেকিং বাদ দেবে।timeout: রিমোট হোস্টের সাথে কানেকশনের সময়কাল নির্ধারণ করে (সেকেন্ডে)।
২. [privilege_escalation]: Ansible-এর প্রিভিলেজ এস্কেলেশন সম্পর্কিত সেটিংস।
become: এটিtrueকরলে Ansible প্রিভিলেজ এস্কেলেশন (sudo) ব্যবহার করবে।become_method: কোন মেথড ব্যবহার করবে (ডিফল্ট হলsudo)।become_user: কোন ইউজার হিসেবে কমান্ড রান করবে (ডিফল্ট হলroot)।become_ask_pass: এটি যদিtrueহয়, তবে sudo পাসওয়ার্ড চাইবে।
৩. [ssh_connection]: SSH সংযোগের জন্য কনফিগারেশন।
ssh_args: SSH সংযোগের জন্য অতিরিক্ত আর্গুমেন্ট।pipelining: এটিtrueকরলে কমান্ডগুলো দ্রুত রান হয়, কারণ এটি SSH সংযোগের সংখ্যাকে কমিয়ে আনে।
ansible.cfg কনফিগারেশন ফাইলের অবস্থান:
Ansible কনফিগারেশন ফাইলের কয়েকটি সাধারণ অবস্থান রয়েছে। Ansible এই ফাইলগুলো ক্রমানুসারে চেক করে:
- ANSIBLE_CONFIG এনভায়রনমেন্ট ভ্যারিয়েবল (যদি সেট করা থাকে)।
- ansible.cfg (বর্তমান ডিরেক্টরি বা প্রজেক্ট ডিরেক্টরি)।
- ~/.ansible.cfg (ইউজারের হোম ডিরেক্টরি)।
- /etc/ansible/ansible.cfg (গ্লোবাল কনফিগারেশন ফাইল)।
টিপস:
ansible.cfgফাইল কাস্টমাইজ করার সময়, নিশ্চিত হন যে সেটিংসগুলো সঠিকভাবে করা হয়েছে, কারণ ভুল সেটিংস প্লেবুক রান বা হোস্ট কানেকশনে সমস্যা সৃষ্টি করতে পারে।- আপনি চাইলে আপনার প্রোজেক্ট অনুযায়ী আলাদা
ansible.cfgব্যবহার করতে পারেন, যা শুধু সেই নির্দিষ্ট প্রোজেক্টের জন্য প্রযোজ্য হবে।
এভাবেই আপনি Ansible কনফিগারেশন ফাইল ব্যবহার করে আপনার ডিফল্ট সেটিংস কাস্টমাইজ এবং নিয়ন্ত্রণ করতে পারেন।
Read more