Ansible ইনভেন্টরি ফাইলগুলি হোস্টগুলির একটি তালিকা বজায় রাখে যা আপনি Ansible দিয়ে কনফিগার বা পরিচালনা করতে চান। আপনি এই হোস্টগুলিকে গোষ্ঠীভুক্ত করতে পারেন এবং গোষ্ঠী দ্বারা তাদের পরিচালনা করতে পারেন। আপনি প্রতিটি হোস্ট বা হোস্টের একটি গ্রুপের জন্য বিভিন্ন ভেরিয়েবল পাস করতে পারেন।
এই নিবন্ধে, আমি আপনাকে দেখাব কিভাবে ব্যবহারযোগ্য উদাহরণ সহ উত্তরযোগ্য প্লেবুক, ভেরিয়েবল, ইনভেন্টরি ফাইল এবং কিছু সাধারণ উত্তরযোগ্য মডিউল নিয়ে কাজ করতে হয়। সুতরাং, আমাদের শুরু করা যাক!
পূর্বশর্ত
আপনি যদি এই নিবন্ধে উদাহরণগুলি চেষ্টা করতে চান,
1) আপনার কম্পিউটারে অবশ্যই Ansible ইনস্টল থাকতে হবে।
2) আপনার কমপক্ষে একটি উবুন্টু/ডেবিয়ান হোস্ট এবং একটি সেন্টোস/আরএইচইএল 8 হোস্ট থাকতে হবে যা অ্যানসিবল অটোমেশনের জন্য কনফিগার করা আছে।
লিনাক্সহিন্টে অনেকগুলি নিবন্ধ রয়েছে যা আনসিবল ইনস্টল করার জন্য এবং অ্যানসিবল অটোমেশনের জন্য হোস্ট কনফিগার করার জন্য নিবেদিত। আরও তথ্যের জন্য প্রয়োজন হলে আপনি এই নিবন্ধগুলি পরীক্ষা করে দেখতে পারেন।
একটি প্রকল্প ডিরেক্টরি তৈরি করা
প্রথমে, একটি প্রকল্প ডিরেক্টরি তৈরি করুন project/প্রকল্প/ নিম্নলিখিত কমান্ড দিয়ে:
$mkdir -পিভি~/প্রকল্প/খেলার বই
এ নেভিগেট করুন project/প্রকল্প/ নিম্নরূপ ডিরেক্টরি:
$সিডি~/প্রকল্পবেসিক ইনভেন্টরি ফাইল:
একটি উত্তরযোগ্য ইনভেন্টরি ফাইল তৈরি করুন হোস্ট নিম্নলিখিত নির্দেশের সাথে প্রকল্প ডিরেক্টরিতে:
$ন্যানোহোস্টআপনি যে হোস্টগুলির কনফিগার/স্বয়ংক্রিয় করতে চান তার IP ঠিকানা টাইপ করতে পারেন হোস্ট জায় ফাইল।
192.168.20.167192.168.20.168
192.168.20.169
192.168.20.170
এই ধাপটি শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
আপনি যদি ইনভেন্টরি ফাইলে আইপি ঠিকানার পরিবর্তে DNS নাম ব্যবহার করতে চান, তাহলে আপনি এটিও করতে পারেন।
আপনার যদি একটি কার্যকরী DNS সার্ভার না থাকে, তাহলে আপনি /etc/hosts স্থানীয় DNS রেজোলিউশনের জন্য আপনার কম্পিউটারে ফাইল করুন।
স্থানীয় DNS রেজোলিউশনের জন্য, খুলুন /etc/hosts একটি টেক্সট এডিটর সহ ফাইল ( ন্যানো , আমার ক্ষেত্রে) নিম্নরূপ:
$sudo ন্যানো /ইত্যাদি/হোস্টনিম্নরূপ আইপি ঠিকানা এবং আপনার পছন্দসই DNS নাম লিখুন:
192.168.20.167 vm1.nodekite.com192.168.20.168 vm2.nodekite.com
192.168.20.169 vm3.nodekite.com
192.168.20.170 vm4.nodekite.com
এই ধাপটি শেষ হয়ে গেলে, টিপুন + এক্স অনুসরণ করে এবং এবং ।
Ansible জায় ফাইল খুলুন হোস্ট নিম্নরূপ:
$ন্যানোহোস্টআপনি এখন যেসব হোস্টের কনফিগার/স্বয়ংক্রিয় করতে চান সেগুলির DNS নাম টাইপ করতে পারেন হোস্ট জায় ফাইল।
vm1.nodekite.comvm2.nodekite.com
vm3.nodekite.com
vm4.nodekite.com
একবার আপনি শেষ হয়ে গেলে, হোস্টের তালিকা ফাইলটি টিপে সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
সমস্ত হোস্টের সাথে সংযোগ পরীক্ষা করা হচ্ছে
এখন, আপনি নিম্নরূপ ইনভেন্টরি ফাইলে সমস্ত হোস্টগুলিকে পিং করার চেষ্টা করতে পারেন:
$উত্তরযোগ্য-আইসব হোস্ট-উউত্তরযোগ্য-মি পিংআপনি দেখতে পাচ্ছেন, ইনভেন্টরি ফাইলের সমস্ত হোস্টগুলি পৌঁছানো যায়। সুতরাং, আমরা এই নিবন্ধের পরবর্তী বিভাগে যাওয়ার জন্য প্রস্তুত।
আপনার প্রথম উত্তরযোগ্য প্লেবুক
আসুন একটি সহজ উত্তরযোগ্য প্লেবুক তৈরি করি ping_all_hosts.yaml মধ্যে খেলার বই/ ডিরেক্টরি। এই ক্রিয়াটি সমস্ত হোস্টকে পিং করবে হোস্ট আগের মত ইনভেন্টরি ফাইল।
$ন্যানোখেলার বই/ping_all_hosts.yamlনিচের লাইনগুলো টাইপ করুন ping_all_hosts.yaml উত্তরযোগ্য প্লেবুক ফাইল:
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: সকল হোস্টকে পিং করুন
পিং:
এখানে,
হোস্ট: সব - ইনভেন্টরি ফাইল থেকে সমস্ত হোস্ট নির্বাচন করে হোস্ট ।
ব্যবহারকারী: উত্তরযোগ্য - এসএসএইচকে ইনভেন্টরি ফাইলে হোস্টে উত্তর দেয় উত্তরযোগ্য ব্যবহারকারী
কাজ - হোস্টে Ansible যে সমস্ত কাজ সম্পাদন করবে তা এখানে তালিকাভুক্ত করা হয়েছে। প্রতিটি কাজের মধ্যে সাধারণত একটি থাকে নাম এবং এক বা একাধিক মডিউল নির্দিষ্ট বিকল্প।
খেলার বই ping_all_hosts.yaml শুধুমাত্র একটি কাজ আছে, ইনভেন্টরি ফাইলে সমস্ত হোস্টকে পিং করা হোস্ট । কাজটির নাম হল সমস্ত হোস্টকে পিং করুন এবং এটি ব্যবহার করে পিং মডিউল
দ্য পিং মডিউলের অন্য কোন বিকল্পের প্রয়োজন নেই। সুতরাং, আমি এটি খালি রেখেছি (কোলনের পরে কিছুই নেই, : )
এই ধাপটি শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
আপনি চালাতে পারেন ping_all_hosts.yaml নিম্নরূপ উত্তরযোগ্য প্লেবুক:
$উত্তরের প্লেবুক-আইপ্লেবুক হোস্ট করে/ping_all_hosts.yamlআপনি দেখতে পাচ্ছেন, পিং টাস্ক ইনভেন্টরি ফাইলের সমস্ত হোস্টে সফল।
সহজ উত্তরযোগ্য কনফিগারেশন ফাইল
আগের উদাহরণে, আপনাকে -আই কোন ইনভেন্টরি ফাইল ব্যবহার করতে হবে তা বলার বিকল্প। আমার ক্ষেত্রে, এটি হোস্ট জায় ফাইল।
$উত্তরের প্লেবুক-আইপ্লেবুক হোস্ট করে/ping_all_hosts.yamlআপনি যদি একটি তালিকা ফাইল দিয়ে পাস করতে না চান -আই প্রতিবার যখন আপনি একটি উত্তরযোগ্য প্লেবুক চালান, তখন আপনাকে কেবল আপনার প্রকল্পের জন্য একটি ডিফল্ট ইনভেন্টরি ফাইল সেট করতে হবে।
এটি করার জন্য, একটি নতুন উত্তরযোগ্য কনফিগারেশন ফাইল তৈরি করুন ansible.cfg আপনার প্রকল্পের রুট নিম্নরূপ:
$ন্যানোansible.cfgনিচের লাইনগুলো টাইপ করুন ansible.cfg ফাইল:
[পূর্ব নির্ধারিত]জায় =।/হোস্ট
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
আপনি নিম্নরূপ একই Ansible প্লেবুক চালাতে পারেন:
$ansible-playbook playbooks/ping_all_hosts.yamlআপনি দেখতে পাচ্ছেন, প্লেবুকটি ব্যবহার করছে হোস্ট ডিফল্টভাবে ইনভেন্টরি ফাইল। আপনি এখনও ব্যবহার করতে পারেন -আই যদি আপনি চান তবে একটি ভিন্ন তালিকা ফাইল নির্দিষ্ট করার বিকল্প। Ansible খুব নমনীয়।
ইনভেন্টরি ফাইলে হোস্টগুলিকে গ্রুপ করা
এখন পর্যন্ত, আমি আপনাকে দেখিয়েছি কিভাবে ইনভেন্টরি ফাইলে সমস্ত হোস্টে টাস্কের একটি সেট (প্লেবুক) চালাতে হয়। কিন্তু আপনি যদি কিছু হোস্টে কাজগুলির একটি সেট এবং অন্য হোস্টে অন্য কাজগুলির একটি সেট চালাতে চান? আপনি ইনভেন্টরি ফাইলে হোস্টগুলিকে গ্রুপ করতে পারেন এবং হোস্ট গ্রুপগুলিতে বিভিন্ন কাজ চালাতে পারেন।
এই বিভাগে, আমি আপনাকে দেখাবো কিভাবে ইনভেন্টরি ফাইলে হোস্টগুলিকে গ্রুপ করা যায় এবং কিভাবে হোস্ট গ্রুপের সাথে কাজ করতে হয়।
প্রথমে, ইনভেন্টরি ফাইলটি খুলুন হোস্ট নিম্নরূপ:
$ন্যানোহোস্টনিচের লাইনগুলো টাইপ করুন হোস্ট ইনভেন্টরি ফাইল:
[ডেবিয়ান 10]vm1.nodekite.com
vm2.nodekite.com
[সেন্টোস 8]
vm3.nodekite.com
vm4.nodekite.com
এখানে, আমি দুটি হোস্ট গ্রুপ তৈরি করেছি: ডেবিয়ান 10 এবং সেন্টোস 8 ।
মধ্যে ডেবিয়ান 10 গ্রুপ, আমার দুটি হোস্ট আছে: vm1.nodekite.com এবং vm2.nodekite.com
মধ্যে সেন্টোস 8 গ্রুপ, আমার দুটি হোস্ট আছে: vm3.nodekite.com এবং vm4.nodekite.com
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
আমরা এখন একটি নতুন প্লেবুক তৈরি করব ping_debian10_hosts.yaml , যা আগের মত হোস্টদের পিং করবে, কিন্তু শুধুমাত্র হোস্টগুলিকে ডেবিয়ান 10 হোস্ট গ্রুপ।
একটি খেলার বই তৈরি করুন ping_debian10_hosts.yaml মধ্যে খেলার বই/ নিম্নরূপ ডিরেক্টরি:
$ন্যানোখেলার বই/ping_debian10_hosts.yamlনিচের লাইনগুলো টাইপ করুন ping_debian10_hosts.yaml উত্তরহীন প্লেবুক:
- হোস্ট: ডেবিয়ান 10ব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: পিং অল ডেবিয়ান10হোস্ট
পিং:
পরিবর্তে হোস্ট: সব , আমি যুক্ত করেছি হোস্ট: ডেবিয়ান 10 এখানে. ডেবিয়ান 10 হোস্ট গ্রুপ। এই প্লেবুকটি শুধুমাত্র হোস্টে চলবে ডেবিয়ান 10 হোস্ট গ্রুপ।
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
নিম্নরূপ প্লেবুক চালান:
$ansible-playbook playbooks/ping_debian10_hosts.yamlআপনি দেখতে পাচ্ছেন, কেবলমাত্র হোস্টরা ডেবিয়ান 10 হোস্ট গ্রুপ pinged হয়।
একই পদ্ধতি ব্যবহার করে আরেকটি প্লেবুক তৈরি করুন ping_centos8_hosts.yaml নিম্নরূপ:
$ন্যানোখেলার বই/ping_centos8_hosts.yamlনিচের লাইনগুলো টাইপ করুন ping_centos8_hosts.yaml উত্তরহীন প্লেবুক:
- হোস্ট: সেন্টোস 8ব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: সকল সেন্টোস পিং করুন8হোস্ট
পিং:
একই ভাবে, আমি যোগ করেছি হোস্ট: সেন্টোস 8 এখানে. সেন্টোস 8 হোস্ট গ্রুপ। এই প্লেবুকটি শুধুমাত্র হোস্টে চলবে সেন্টোস 8 হোস্ট গ্রুপ।
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
নিম্নরূপ প্লেবুক চালান:
$ansible-playbook playbooks/ping_centos8_hosts.yamlআপনি দেখতে পাচ্ছেন, কেবলমাত্র হোস্টরা সেন্টোস 8 হোস্ট গ্রুপ pinged হয়।
উত্তরযোগ্য পরিবর্তনশীল প্রকার
Ansible তে বিভিন্ন ধরনের ভেরিয়েবল আছে। প্রধান পরিবর্তনশীল প্রকারগুলি হল উত্তরের তথ্য ভেরিয়েবল এবং ব্যবহারকারী সংজ্ঞায়িত ভেরিয়েবল ।
উত্তরযোগ্য তথ্য ভেরিয়েবল: Ansible হোস্টের উপর নির্ভর করে কাজ করছে, Ansible Ansible Fact ভেরিয়েবল তৈরি করে। উত্তরের তথ্য ভেরিয়েবলগুলিতে হোস্ট সম্পর্কে তথ্য থাকে, যেমন আইপি ঠিকানা, হোস্টনাম, ডোমেন নাম, তারিখ, সময়, শেল পরিবেশের ভেরিয়েবল এবং আরও অনেক কিছু।
ব্যবহারকারী সংজ্ঞায়িত ভেরিয়েবল: এগুলি ব্যবহারকারী দ্বারা সংজ্ঞায়িত কাস্টম ভেরিয়েবল। আপনি কমান্ড লাইন থেকে ব্যবহারকারী-সংজ্ঞায়িত ভেরিয়েবল পাস করতে পারেন, অথবা ইনভেন্টরি ফাইল ব্যবহার করে।
প্রধানত ব্যবহারকারী-সংজ্ঞায়িত ভেরিয়েবল দুই প্রকার: গ্রুপ ভেরিয়েবল এবং হোস্ট ভেরিয়েবল ।
উত্তরযোগ্য পরিবর্তনশীল অগ্রাধিকার
Ansible এর পরিবর্তনশীল অগ্রাধিকার হল : কমান্ড লাইন ভেরিয়েবল > হোস্ট ভেরিয়েবল > গ্রুপ ভেরিয়েবল
যদি আপনি হোস্ট ভেরিয়েবল এবং গ্রুপ ভেরিয়েবলের মতো একই ভেরিয়েবল সেট করেন, হোস্ট ভেরিয়েবল প্রয়োগ করা হবে।
একইভাবে, প্লেবুক চালানোর সময় আপনি কমান্ড লাইন থেকে যে ভেরিয়েবল সেট করেছেন তা হোস্ট এবং গ্রুপ ভেরিয়েবল উভয়ই প্রতিস্থাপন করবে।
উত্তরযোগ্য তথ্য ভেরিয়েবলের সাথে কাজ করা
এই বিভাগে, আমি আপনাকে দেখাব কিভাবে উত্তরযোগ্য তথ্য ভেরিয়েবলের সাথে কাজ করতে হয়। সুতরাং, আমাদের শুরু করা যাক!
আপনি আপনার হোস্টের সমস্ত উত্তরযোগ্য তথ্য পরিবর্তনশীল তালিকাভুক্ত করতে পারেন হোস্ট নিম্নরূপ ইনভেন্টরি ফাইল:
$সব উত্তরযোগ্য-উউত্তরযোগ্য-মিসেটআপআপনি দেখতে পাচ্ছেন, সমস্ত উত্তরযোগ্য তথ্য ভেরিয়েবল JSON ফর্ম্যাটে তালিকাভুক্ত। এটি একটি খুব দীর্ঘ তালিকা।
যেহেতু তালিকাটি বেশ দীর্ঘ, আপনি এটি একটি পেজার প্রোগ্রাম দিয়ে খুলতে পারেন কম নিম্নরূপ:
$সব উত্তরযোগ্য-উউত্তরযোগ্য-মিসেটআপ| কমএখন, আপনি আউটপুটটি উপরে, নিচে, বাম এবং ডানদিকে স্ক্রোল করতে পারেন।
আপনি পেজার থেকে পরিবর্তনশীল নামও অনুসন্ধান করতে পারেন। এটি করার জন্য, টিপুন / আপনার কীবোর্ডের কী। তারপর, সার্চ স্ট্রিং টাইপ করুন ( হোস্টনাম আমার ক্ষেত্রে) এবং টিপুন ।
আপনি দেখতে পাচ্ছেন, অনুসন্ধানযোগ্য স্ট্রিংয়ের সাথে মিলিত উত্তরযোগ্য তথ্যগুলি পরিবর্তনশীল ansible_hostname । আপনি টিপতে পারেন এন পরের ম্যাচে যেতে এবং পি পেজার থেকে আগের ম্যাচে যেতে। এইভাবে আপনি আপনার উত্তরযোগ্য প্রকল্পের জন্য প্রয়োজনীয় Ansible তথ্য পরিবর্তনশীল খুঁজে পান।
আসুন এখন দেখি কিভাবে উত্তরযোগ্য তথ্য ভেরিয়েবল অ্যাক্সেস করতে হয়।
একটি নতুন প্লেবুক তৈরি করুন print_variable1.yaml নিম্নরূপ:
$ন্যানোখেলার বই/print_variable1.yamlনিচের লাইনগুলো টাইপ করুন print_variable1.yaml ফাইল:
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: প্রিন্টহোস্টনামসমস্ত হোস্টের
ডিবাগ:
বার্তা:'{{ansible_hostname}}'
এখানে, আমি একটি কাজ যোগ করেছি সমস্ত হোস্টের হোস্টনাম মুদ্রণ করুন । এই কাজটি উত্তরদাতা ব্যবহার করে ডিবাগ প্লেবুক চললে একটি বার্তা প্রিন্ট করার মডিউল।
বার্তা এর একমাত্র প্রয়োজনীয় প্যারামিটার ডিবাগ মডিউল দ্য বার্তা প্যারামিটার উদ্ধৃতিতে একটি স্ট্রিং গ্রহণ করে, যা বার্তা যা কনসোলে মুদ্রিত হবে।
এখানে, {{variable_name}} একটি ভেরিয়েবল অ্যাক্সেস করার জন্য বিন্যাস ব্যবহার করা হয়। এক্ষেত্রে, {{ansible_hostname}} প্রিন্ট করতে ব্যবহৃত হয় ansible_hostname ইনভেন্টরি ফাইলে প্রতিটি হোস্টের পরিবর্তনশীল।
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
আপনি হিসাবে Ansible তথ্য ভেরিয়েবল অ্যাক্সেস করতে পারেন ansible_facts [পরিবর্তনশীল_নাম] । তাহলে ansible_hostname পরিবর্তনশীল হয়ে যাবে ansible_facts [hostname] ।
আমরা পুনরায় লিখতে পারি print_variable1.yaml এই মত প্লেবুক। আমরা একই আউটপুট পাব।
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: প্রিন্টহোস্টনামসমস্ত হোস্টের
ডিবাগ:
বার্তা:'{{ansible_facts [' variable_name ']}}'
প্লেবুক চালান print_variable1.yaml নিম্নরূপ:
$ansible-playbook playbooks/print_variable1.yamlআপনি দেখতে পাচ্ছেন, ইনভেন্টরি ফাইলের প্রতিটি হোস্টের হোস্টনাম কনসোলে মুদ্রিত।
আসুন এখন হোস্টনাম সহ প্রতিটি হোস্টের ডিফল্ট IPv4 ঠিকানা মুদ্রণ করি। আপনি দেখতে পাচ্ছেন, হোস্টের ডিফল্ট IPv4 ঠিকানা ব্যবহার করে অ্যাক্সেস করা যায় ঠিকানা এর সম্পত্তি ansible_default_ipv4 বস্তু
একটি নতুন প্লেবুক তৈরি করুন print_variable2.yaml নিম্নরূপ:
$ন্যানোখেলার বই/print_variable2.yamlনিচের লাইনগুলো টাইপ করুন print_variable2.yaml ফাইল:
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: প্রিন্টহোস্টনামসমস্ত হোস্টের
ডিবাগ:
বার্তা:'{{ansible_hostname}} - {{ansible_default_ipv4.address}}'
এই প্লেবুক আগের মতই আছে। পার্থক্য শুধু নতুন পরিবর্তনশীল {{ansible_default_ipv4.address}} মধ্যে বার্তা এর বিকল্প ডিবাগ মডিউল
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
চালান print_variable2.yaml নিম্নরূপ প্লেবুক:
$ansible-playbook playbooks/print_variable2.yamlআপনি দেখতে পারেন, ডিফল্ট IPv4 ঠিকানা এবং হোস্টের হোস্টনাম কনসোলে মুদ্রিত হয়।
সুতরাং, এভাবেই আপনি Ansible Facts ভেরিয়েবল নিয়ে কাজ করেন।
কমান্ড লাইন থেকে ব্যবহারকারী-সংজ্ঞায়িত ভেরিয়েবল সেট করা:
এই বিভাগে, আমি আপনাকে দেখাব কিভাবে কমান্ড লাইন থেকে ব্যবহারকারী-সংজ্ঞায়িত ভেরিয়েবলগুলি সেট করতে হয় যখন Ansible প্লেবুকগুলি চালানো হয়।
প্রথমে, একটি নতুন প্লেবুক তৈরি করুন print_variable3.yaml নিম্নরূপ:
$ন্যানোখেলার বই/print_variable3.yamlনিচের লাইনগুলো টাইপ করুন print_variable3.yaml ফাইল:
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: প্রিন্টকমান্ডলাইন পরিবর্তনশীল
ডিবাগ:
বার্তা:'{{Username}} স্বাগতম' '
এখানে, আমি ব্যবহার করেছি ডিবাগ বার্তা প্রিন্ট করার জন্য মডিউল স্বাগতম {{username}} । ব্যবহারকারীর নাম একটি পরিবর্তনশীল যা প্লেবুক চালানোর সময় প্রতিস্থাপিত হবে।
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
প্লেবুক চালান print_variable3.yaml নিম্নরূপ:
$উত্তরের প্লেবুক-এবং 'ব্যবহারকারীর নাম = বব'খেলার বই/print_variable3.yamlবিঃদ্রঃ: এখানে, -এবং অপশনটি পাস করার জন্য ব্যবহৃত হয় ব্যবহারকারীর নাম মান সহ পরিবর্তনশীল বব প্লেবুকের কাছে print_variable3.yaml কমান্ড লাইন থেকে।
আপনি দেখতে পারেন, বার্তা স্বাগতম বব কনসোলে মুদ্রিত হয়।
এখন কমান্ড লাইন থেকে একাধিক ভেরিয়েবল কিভাবে পাস করা যায় তা আবিষ্কার করা যাক।
একটি নতুন প্লেবুক তৈরি করুন print_variable4.yaml নিম্নরূপ:
$ন্যানোখেলার বই/print_variable4.yamlনিচের লাইনগুলো টাইপ করুন print_variable4.yaml ফাইল:
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: ব্যবহারকারী সংজ্ঞায়িত ভেরিয়েবল প্রিন্ট করুন
ডিবাগ:
বার্তা:'ব্যবহারকারীর নাম = {{ব্যবহারকারীর নাম}} http_port = {{http_port}}'
প্লেবুকটি এখনই আপনার কাছে খুব পরিচিত হওয়া উচিত। এটি যা করে তা হল 2 টি ভেরিয়েবল প্রিন্ট করা ব্যবহারকারীর নাম এবং http_port কনসোলে।
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
আপনি এখন পাস করতে পারেন ব্যবহারকারীর নাম এবং http_port দুটি ভিন্ন ব্যবহার করে প্লেবুকের পরিবর্তনশীল -এবং বিকল্পটি নিম্নরূপ:
$ ansible- প্লেবুক-এবং 'ব্যবহারকারীর নাম = বব' -এবং 'http_port = 8080'খেলার বই/print_variable4.yaml
অথবা, আপনি কেবল একটি হোয়াইটস্পেস দিয়ে ভেরিয়েবলগুলি আলাদা করতে পারেন, নিম্নরূপ:
$ ansible- প্লেবুক-এবং 'ব্যবহারকারীর নাম = বব http_port = 8080'খেলার বই/print_variable4.yaml
আপনি দেখতে পারেন, ব্যবহারকারীর নাম এবং http_port ভেরিয়েবলগুলি কনসোলে মুদ্রিত হয়।
ব্যবহারকারী-সংজ্ঞায়িত গ্রুপ ভেরিয়েবলের সাথে কাজ করা
বলুন, আপনি হোস্টের একটি গ্রুপে কিছু ভেরিয়েবল যুক্ত করতে চান। Ansible এ এই কাজটি করা খুবই সহজ।
প্রথমে, আপনার খুলুন হোস্ট নিম্নরূপ ইনভেন্টরি ফাইল:
$ন্যানোহোস্টআপনার নিচের লাইনগুলো টাইপ করুন হোস্ট ইনভেন্টরি ফাইল:
[ডেবিয়ান 10]vm1.nodekite.com
vm2.nodekite.com
[debian10: vars]
ব্যবহারকারীর নাম = লিলি
http_port =4343
[সেন্টোস 8]
vm3.nodekite.com
vm4.nodekite.com
[centos8: vars]
ব্যবহারকারীর নাম = বব
http_port =7878
আপনি দেখতে পাচ্ছেন, আমি একটি নতুন বিভাগ তৈরি করেছি [debian10: vars] জন্য ডেবিয়ান 10 হোস্ট গ্রুপ এবং ভেরিয়েবল যোগ করা হয়েছে ( ব্যবহারকারীর নাম এবং http_port ) জন্য ডেবিয়ান 10 সেখানে হোস্ট গ্রুপ।
একই ভাবে, আমি একটি নতুন বিভাগ তৈরি করেছি [centos8: vars] জন্য সেন্টোস 8 হোস্ট গ্রুপ এবং ভেরিয়েবল যোগ করা হয়েছে ( ব্যবহারকারীর নাম এবং http_port ) জন্য সেন্টোস 8 সেখানে হোস্ট গ্রুপ।
একবার আপনি শেষ হয়ে গেলে, সংরক্ষণ করুন হোস্ট চেপে ইনভেন্টরি ফাইল + এক্স অনুসরণ করে এবং এবং ।
চালান print_variable4.yaml নিম্নরূপ playbooks:
$ansible-playbook playbooks/print_variable4.yamlআপনি দেখতে পাচ্ছেন, সঠিক ভেরিয়েবল প্রতিটি হোস্টকে তাদের হোস্ট গ্রুপের উপর নির্ভর করে দেওয়া হয়।
ব্যবহারকারী-নির্ধারিত হোস্ট ভেরিয়েবলের সাথে কাজ করা
এই বিভাগে, আমি আপনাকে দেখাব কিভাবে ইনভেন্টরি ফাইলে নির্দিষ্ট হোস্টের জন্য ভেরিয়েবল সেট করতে হয়।
প্রথমে, ওপেন করুন হোস্ট নিম্নরূপ ইনভেন্টরি ফাইল:
$ন্যানোহোস্টএকটি নির্দিষ্ট হোস্টে ভেরিয়েবল যুক্ত করতে (বলুন, vm1.nodekite.com ), হোস্ট আইপি/ডিএনএস নামের পরে একটি স্পেস/ট্যাব যোগ করুন এবং আপনার ভেরিয়েবল টাইপ করুন, যেমন নীচের স্ক্রিনশটে দেখানো হয়েছে।
আপনি একাধিক ভেরিয়েবল যোগ করতে পারেন। প্রতিটি ভেরিয়েবলকে একটি স্পেস দিয়ে আলাদা করুন।
একবার আপনি শেষ হয়ে গেলে, টিপুন ইনভেন্টরি ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
চালান print_variable4.yaml নিম্নরূপ playbooks:
$ansible-playbook playbooks/print_variable4.yamlআপনি দেখতে পারেন, ভেরিয়েবল শুধুমাত্র জন্য সেট করা হয় vm1.nodekite.com হোস্ট অন্যান্য হোস্টে তাদের জন্য গ্রুপ ভেরিয়েবল প্রয়োগ করা হয়েছে।
রেঞ্জের সাথে দ্রুত ইনভেন্টরি ফাইল তৈরি করা
যদি আপনার হোস্ট আইপি অ্যাড্রেস বা ডিএনএসের নাম সামঞ্জস্যপূর্ণ হয় (যেমন একটি নির্দিষ্ট ফরম্যাট থাকে) তাহলে আপনি দ্রুত উত্তরযোগ্য ইনভেন্টরি ফাইল তৈরি করতে রেঞ্জ ব্যবহার করতে পারেন।
আগের উদাহরণগুলিতে, আমি হোস্ট ব্যবহার করেছি vm1.nodekite.com , vm2.nodekite.com , vm3.nodekite.com এবং vm4.nodekite.com । 4 লাইনে টাইপ করার পরিবর্তে, আমি কেবল টাইপ করতে পারতাম vm [1: 4] .nodekite.com ইনভেন্টরি ফাইলে।
পরিসর নিয়ে পরীক্ষা -নিরীক্ষার জন্য, খুলুন হোস্ট নিম্নরূপ ইনভেন্টরি ফাইল:
$ন্যানোহোস্টইনভেন্টরি ফাইল থেকে সমস্ত হোস্ট এবং ভেরিয়েবল সরান।
আমরা এখন প্রতিস্থাপন করতে পারি vm1.nodekite.com এবং vm2.nodekite.com সঙ্গে vm [1: 2] .nodekite.com জন্য ডেবিয়ান 10 নিম্নরূপ হোস্ট গ্রুপ।
একইভাবে, আমরা প্রতিস্থাপন করতে পারি vm3.nodekite.com এবং vm4.nodekite.com সঙ্গে vm [3: 4] .nodekite.com জন্য সেন্টোস 8 হোস্ট গ্রুপ।
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
চালান ping_all_hosts.yaml নিম্নরূপ:
$ansible-playbook playbooks/ping_all_hosts.yamlআপনি দেখতে পাচ্ছেন, যখন আমি প্লেবুকটি চালাই তখন হোস্ট রেঞ্জগুলি প্রসারিত হয়েছিল।
বিভিন্ন ফাইলে ভেরিয়েবল সংরক্ষণ করা
গ্রুপ ভেরিয়েবল এবং হোস্ট ভেরিয়েবল একই ইনভেন্টরি ফাইলে সংরক্ষণ করা খুব সহজ। কিন্তু, আপনি হয়তো আরো নমনীয়তা খুঁজছেন। বিশেষ করে যখন আপনি আপনার ইনভেন্টরি ফাইলে রেঞ্জ ব্যবহার করতে চান কারণ আপনি রেঞ্জ ব্যবহার করলে আর হোস্ট ভেরিয়েবল সেট করতে পারবেন না। আচ্ছা, আপনি বিভিন্ন ফাইলে গ্রুপ ভেরিয়েবল এবং হোস্ট ভেরিয়েবল সংরক্ষণ করতে পারেন। এই বিভাগে, আমি আপনাকে দেখাব কিভাবে এটি সম্পন্ন হয়।
ডিফল্টরূপে, Ansible গোষ্ঠী ভেরিয়েবলের জন্য সন্ধান করে group_vars / মধ্যে ডিরেক্টরি এবং হোস্ট ভেরিয়েবল host_vars / ডিরেক্টরি।
সুতরাং, তৈরি করুন group_vars / এবং host_vars / নিম্নরূপ ডিরেক্টরি:
$mkdir -পিভি {হোস্ট, গ্রুপ}_ কারএর জন্য গ্রুপ ভেরিয়েবল সেট করতে ডেবিয়ান 10 হোস্ট গ্রুপ, একটি ফাইল তৈরি করুন ডেবিয়ান 10 (গ্রুপের নাম সমান) group_vars / নিম্নরূপ ডিরেক্টরি:
$ন্যানোgroup_vars/ডেবিয়ান 10নিম্নরূপ আপনার ভেরিয়েবল টাইপ করুন:
ব্যবহারকারীর নাম: লিলিhttp_port: 4343
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স এর পরে Y এবং ।
একইভাবে, এর জন্য গ্রুপ ভেরিয়েবল সেট করতে সেন্টোস 8 হোস্ট গ্রুপ, একটি ফাইল তৈরি করুন সেন্টোস 8 (গ্রুপের নাম সমান) group_vars / নিম্নরূপ ডিরেক্টরি:
$ন্যানোgroup_vars/সেন্টোস 8নিম্নরূপ আপনার ভেরিয়েবল টাইপ করুন:
ব্যবহারকারীর নাম: ববhttp_port: 7878
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স এর পরে Y এবং ।
চালান print_variable4.yaml নিম্নরূপ প্লেবুক:
$ansible-playbook playbooks/print_variable4.yamlআপনি দেখতে পাচ্ছেন, গ্রুপ ভেরিয়েবলগুলি সঠিকভাবে প্রতিটি হোস্ট গ্রুপের জন্য সেট করা আছে।
হোস্টের জন্য হোস্ট ভেরিয়েবল সেট করতে vm1.nodekite.com , একটি ফাইল তৈরি করুন vm1.nodekite.com (হোস্টের নাম বা আইপি ঠিকানার মতো) host_vars / নিম্নরূপ ডিরেক্টরি:
$ন্যানোvm1.nodekite.comনিম্নরূপ আপনার হোস্ট ভেরিয়েবল টাইপ করুন:
ব্যবহারকারীর নাম: অ্যালেক্সhttp_port: 7788
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স এর পরে Y এবং ।
চালান print_variable4.yaml নিম্নরূপ প্লেবুক:
$ ansible-playbook playbooks/print_variable4.yaml[
আপনি দেখতে পাচ্ছেন, হোস্ট ভেরিয়েবল হোস্টের জন্য সঠিকভাবে সেট করা আছে vm1.nodekite.com ।
আনসিবলে লুপ নিয়ে কাজ করা
এই বিভাগে, আমি আপনাকে দেখাবো কিভাবে আনসিবলে লুপ ব্যবহার করতে হয়।
প্রথমে, একটি নতুন প্লেবুক তৈরি করুন loop1.yaml মধ্যে খেলার বই/ নিম্নরূপ ডিরেক্টরি:
$ন্যানোখেলার বই/loop1.yamlনিচের লাইনগুলো টাইপ করুন loop1.yaml প্লেবুক:
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: ব্যবহারকারীর তালিকা মুদ্রণ করুন
ডিবাগ:
বার্তা:'ব্যবহারকারী: {{item}}'
with_items:
- অ্যালেক্স
- বব
- লিলি
এখানে, আমার 1 টি কাজ আছে যা লুপ ব্যবহার করে ব্যবহারকারীদের একটি তালিকা প্রিন্ট করে।
কাজের জন্য পুনরাবৃত্তির মান নির্ধারণ করতে, আপনি with_items মডিউল তারপরে, আপনি একে একে মান যোগ করুন।
with_items:- অ্যালেক্স
- বব
- লিলি
আপনি ব্যবহার করে বর্তমান পুনরাবৃত্তির মান অ্যাক্সেস করুন আইটেম পরিবর্তনশীল
ডিবাগ:বার্তা:'ব্যবহারকারী: {{item}}'
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
চালান loop1.yaml নিম্নরূপ প্লেবুক:
$ansible-playbook playbooks/loop1.yamlআপনি দেখতে পাচ্ছেন, প্রতিটি হোস্টে প্রতিটি আইটেমের জন্য একই কাজ চলছিল। সুতরাং, লুপ কাজ করছে।
উত্তরের মধ্যে শর্তাবলী নিয়ে কাজ করা
আপনি যদি কিছু শর্তের উপর ভিত্তি করে কাজ চালাতে চান, তাহলে এই বিভাগটি আপনার জন্য।
শর্তের উপর ভিত্তি করে কাজগুলি চালানোর জন্য, আপনি কখন উত্তরের মডিউল। আসুন এই মডিউলের একটি উদাহরণ দেখি। প্রথমে, একটি নতুন প্লেবুক তৈরি করুন শর্ত 1 নিম্নরূপ:
$ন্যানোখেলার বই/শর্ত 1নিচের লাইনগুলো টাইপ করুন শর্ত 1 প্লেবুক:
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: এই কাজটি শুধুমাত্র ডেবিয়ানে চালান
ডিবাগ:
বার্তা:'এই কাজটি ডেবিয়ানে চলছে'
কখন: ansible_facts['বিতরণ']=='ডেবিয়ান'
এখানে,
ansible_facts ['বন্টন'] == 'ডেবিয়ান' কিনা তা যাচাই করতে ব্যবহৃত হয় বন্টন হয় ডেবিয়ান । বিতরণ ডেবিয়ান হলেই কাজটি চলবে।
দ্য ansible_facts ['বন্টন'] Ansible Facts ভেরিয়েবল অ্যাক্সেস করতে ব্যবহৃত হয় ansible_distribution । আপনি ব্যবহার করে বিতরণ সংস্করণটিও পরীক্ষা করতে পারেন ansible_distribution_major_version পরিবর্তনশীল
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
চালান শর্ত 1 নিম্নরূপ প্লেবুক:
$ansible-playbook playbooks/শর্ত 1আপনি দেখতে পাচ্ছেন, টাস্কটি কেবল ডেবিয়ান হোস্টগুলিতেই চলছিল। কাজটি CentOS হোস্টে চলেনি।
আপনি একই সময়ে একাধিক শর্ত পরীক্ষা করতে পারেন এবং সমস্ত শর্ত সত্য হলেই কাজটি চালাতে পারেন। আসুন একটি উদাহরণ দেখি।
একটি নতুন প্লেবুক তৈরি করুন শর্ত 2 নিম্নরূপ:
$ন্যানোখেলার বই/শর্ত 2নিচের লাইনগুলো টাইপ করুন শর্ত 2 ফাইল:
- হোস্ট: সবব্যবহারকারী: উত্তরযোগ্য
কাজ:
- নাম: এই কাজটি শুধুমাত্র ডেবিয়ানে চালান10
ডিবাগ:
বার্তা:'এই কাজটি ডেবিয়ান 10 এ চলছে'
কখন: ansible_facts['বিতরণ']=='ডেবিয়ান'
এবং ansible_facts['ডিস্ট্রিবিউশন_মজর_ভারসন']=='10'
এখানে, ডিস্ট্রিবিউশন ডেবিয়ান হলেই কাজটি চলবে ( ansible_facts ['বন্টন'] == 'ডেবিয়ান' ) এবং সংস্করণ 10 ( ansible_facts ['distribution_major_version'] == '10' )। যদি উভয় শর্তই সত্য হয়, তাহলে কাজটি চলবে। অন্যথায়, কাজটি চলবে না।
আমি ব্যবহার করেছি এবং উভয় শর্ত সত্য কিনা তা পরীক্ষা করার জন্য কীওয়ার্ড এখানে। যদি আপনি কোন শর্ত সত্য কিনা তা পরীক্ষা করতে চান, তাহলে আপনি ব্যবহার করতে পারেন অথবা পরিবর্তে কীওয়ার্ড।
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
প্লেবুক চালান শর্ত 2 নিম্নরূপ:
$ansible-playbook playbooks/শর্ত 2আপনি দেখতে পাচ্ছেন, টাস্কটি কেবল ডেবিয়ান 10 হোস্টে চলেছিল।
আসুন প্লেবুক পরিবর্তন করি শর্ত 2 নিম্নরূপ শুধুমাত্র ডেবিয়ান 8 হোস্টে টাস্ক চালানোর জন্য।
আপনি দেখতে পাচ্ছেন, সমস্ত হোস্টগুলি বাদ দেওয়া হয়েছিল কারণ আমার কাছে ইনভেন্টরি ফাইলে কোনও ডেবিয়ান 8 হোস্ট নেই।
Ansible apt মডিউলের সাথে কাজ করা
দ্য উপযুক্ত উবুন্টু/ডেবিয়ান হোস্টে একটি নির্দিষ্ট সফটওয়্যার প্যাকেজ ইনস্টল করার জন্য Ansible মডিউল ব্যবহার করা হয়। আসুন দেখি কিভাবে এই মডিউলটি ব্যবহার করা যায়।
প্রথমে, একটি নতুন প্লেবুক তৈরি করুন apt1.yaml মধ্যে খেলার বই/ নিম্নরূপ ডিরেক্টরি:
$ন্যানোখেলার বই/apt1.yamlনিচের লাইনগুলো টাইপ করুন apt1.yaml প্লেবুক:
- হোস্ট: ডেবিয়ান 10ব্যবহারকারী: উত্তরযোগ্য
সত্যি হলো
কাজ:
- নাম: অ্যাপাচি 2 ইনস্টল করুন
উপযুক্ত:
নাম: apache2
রাষ্ট্র: সর্বশেষ
দ্য উপযুক্ত মডিউল শুধুমাত্র প্রয়োজন নাম আপনি যে প্যাকেজটি ইনস্টল/আপগ্রেড/অপসারণ করতে চান এবং অবস্থা প্যাকেজের।
এখানে, আমি ইনস্টল করার চেষ্টা করছি apache2 প্যাকেজ ( নাম: apache2 ) আমার ডেবিয়ান 10 হোস্টে। যেহেতু আমি একটি প্যাকেজ ইনস্টল করার চেষ্টা করছি এবং একটি নতুন সংস্করণ পাওয়া গেলে এটি আপগ্রেড করার চেষ্টা করছি, অবস্থা হতে হবে সর্বশেষ ।
অবস্থা নিম্নলিখিত বিকল্পগুলিও গ্রহণ করে:
- অনুপস্থিত - ইতিমধ্যে ইনস্টল করা থাকলে প্যাকেজটি সরানো হবে।
- সর্বশেষ - আপডেট পাওয়া গেলে প্যাকেজটি আপগ্রেড করা হবে। যদি প্যাকেজটি ইতিমধ্যে ইনস্টল করা না থাকে তবে এটি ইনস্টল করা হবে।
- বর্তমান - প্যাকেজটি ইন্সটল না থাকলে ইন্সটল করা হবে। কিন্তু আপডেট পাওয়া গেলে প্যাকেজটি আপগ্রেড করা হবে না।
লক্ষ্য করুন যে আমি যোগ করেছি সত্যি হলো প্লেবুকের মধ্যে। এটি দেবে উত্তরযোগ্য ফাইল সিস্টেম কাঠামো সংশোধন করার জন্য ব্যবহারকারীর সুডো সুবিধা (যেমন প্যাকেজ ইনস্টল/আপগ্রেড/অপসারণ)। ছাড়া সত্যি হলো , দ্য উপযুক্ত মডিউল ইনস্টল করতে পারবে না apache2 প্যাকেজ
একবার আপনি শেষ হয়ে গেলে, টিপ দিয়ে প্লেবুকটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
চালান apt1.yaml নিম্নরূপ প্লেবুক:
$ansible-playbook playbooks/apt1.yamlআপনি দেখতে পাচ্ছেন, প্লেবুক সফলভাবে ডেবিয়ান 10 হোস্টে চলেছে।
আপনি দেখতে পারেন, apache2 আমার ডেবিয়ান 10 হোস্টে প্যাকেজ ইনস্টল করা আছে।
Ansible dnf/yum মডিউলের সাথে কাজ করা
দ্য dnf এবং ইয়াম CentOS/RHEL হোস্টে একটি নির্দিষ্ট সফটওয়্যার প্যাকেজ ইনস্টল করার জন্য Ansible মডিউল ব্যবহার করা হয়। আপনি এই মডিউলটি একইভাবে ব্যবহার করতে পারেন যেমনটি আপনি করেছিলেন উপযুক্ত এই নিবন্ধের আগের বিভাগে মডিউল।
উভয় dnf এবং ইয়াম মডিউল একই প্যারামিটার গ্রহণ করে। আপনি ব্যবহার করতে পারেন dnf CentOS/RHEL 8 হোস্টে মডিউল, এবং ইয়াম CentOS/RHEL 7 বা তার বেশি বয়সে।
আসুন এখন এই মডিউলের একটি উদাহরণ দেখি।
প্রথমে, একটি নতুন প্লেবুক তৈরি করুন dnf1.yaml মধ্যে খেলার বই/ নিম্নরূপ ডিরেক্টরি:
$ন্যানোখেলার বই/dnf1.yamlনিচের লাইনগুলো টাইপ করুন dnf1.yaml প্লেবুক:
- হোস্ট: সেন্টোস 8ব্যবহারকারী: উত্তরযোগ্য
সত্যি হলো
কাজ:
- নাম: httpd প্যাকেজ ইনস্টল করুন
dnf:
নাম: httpd
রাষ্ট্র: সর্বশেষ
দ্য dnf এবং ইয়াম মডিউল শুধুমাত্র প্রয়োজন নাম প্যাকেজ যা আপনি ইনস্টল/আপগ্রেড/অপসারণ করতে চান এবং অবস্থা প্যাকেজের।
এখানে, আমি ইনস্টল করার চেষ্টা করছি httpd প্যাকেজ ( নাম: httpd ) আমার CentOS 8 হোস্টে। যেহেতু আমি একটি প্যাকেজ ইনস্টল করার চেষ্টা করছি, এবং একটি নতুন সংস্করণ পাওয়া গেলে আমি এটি আপগ্রেড করতে চাই অবস্থা হতে হবে সর্বশেষ ।
অবস্থা নিম্নলিখিত বিকল্পগুলি গ্রহণ করে:
- অনুপস্থিত - ইতিমধ্যে ইনস্টল করা থাকলে প্যাকেজটি সরানো হবে।
- সর্বশেষ - আপডেট পাওয়া গেলে প্যাকেজটি আপগ্রেড করা হবে। যদি প্যাকেজটি ইতিমধ্যে ইনস্টল করা না থাকে তবে এটি ইনস্টল করা হবে।
- বর্তমান - প্যাকেজটি ইন্সটল না থাকলে ইন্সটল করা হবে। কিন্তু আপডেট পাওয়া গেলে প্যাকেজটি আপগ্রেড করা হবে না।
লক্ষ্য করুন যে আমি যোগ করেছি সত্যি হলো প্লেবুকের মধ্যে। এই দেয় উত্তরযোগ্য ফাইল সিস্টেম কাঠামো সংশোধন করার জন্য ব্যবহারকারীর সুডো সুবিধা (যেমন প্যাকেজ ইনস্টল/আপগ্রেড/অপসারণ)। ছাড়া সত্যি হলো , দ্য উপযুক্ত মডিউল ইনস্টল করতে পারবে না httpd প্যাকেজ
একবার আপনি শেষ হয়ে গেলে, টিপ দিয়ে প্লেবুকটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
চালান dnf1.yaml নিম্নরূপ প্লেবুক:
$ansible-playbook playbooks/dnf1.yamlআপনি দেখতে পাচ্ছেন, প্লেবুক সফলভাবে CentOS 8 হোস্টে চলেছে।
উত্তরযোগ্য পরিষেবা মডিউলের সাথে কাজ করা
দ্য সেবা আপনার হোস্টে শুরু, বন্ধ, পুনartসূচনা, সক্ষম (স্টার্টআপে পরিষেবা যুক্ত করুন), এবং নিষ্ক্রিয় (স্টার্টআপ থেকে পরিষেবা সরান) পরিষেবাগুলিতে অ্যাসিবল মডিউল ব্যবহার করা হয়।
পূর্ববর্তী বিভাগগুলিতে, আমি আপনাকে দেখিয়েছি কিভাবে উত্তর দেওয়ার মাধ্যমে অ্যাপাচি HTTP সার্ভার প্যাকেজ ইনস্টল করতে হয় উপযুক্ত , dnf এবং ইয়াম মডিউল আসুন আমরা এখন নিশ্চিত করি যে Apache HTTP সার্ভার পরিষেবা চলছে এবং সিস্টেম স্টার্টআপে যোগ করা হয়েছে।
আমি আমার ডেবিয়ান 10 হোস্টের সাথে কাজ করব। কিন্তু, আপনি চাইলে CentOS 8 হোস্টের সাথে কাজ করতে পারেন। কেবল সেই অনুসারে প্লেবুক সামঞ্জস্য করুন।
প্রথমে, একটি নতুন উত্তরযোগ্য প্লেবুক তৈরি করুন apt2.yaml নিম্নরূপ:
$ন্যানোখেলার বই/apt2.yamlনিচের লাইনগুলো টাইপ করুন apt2.yaml প্লেবুক:
- হোস্ট: ডেবিয়ান 10ব্যবহারকারী: উত্তরযোগ্য
সত্যি হলো
কাজ:
- নাম: অ্যাপাচি 2 ইনস্টল করুন
উপযুক্ত:
নাম: apache2
রাষ্ট্র: সর্বশেষ
- নাম: অ্যাপাচি 2 পরিষেবা শুরু করুন
সেবা:
নাম: apache2
অবস্থা: শুরু হয়েছে
সক্ষম: সত্য
এখানে, আমি একটি নতুন কাজ যোগ করেছি, Apache2 পরিষেবা শুরু করুন ।
নাম: apache2 - আমি যে পরিষেবাতে কাজ করছি তা হল apache2 ।
অবস্থা: শুরু হয়েছে - পরিষেবা চলতে হবে।
সক্ষম: সত্য - সিস্টেম স্টার্টআপে পরিষেবাটি যুক্ত করতে হবে।
দ্য অবস্থা প্যারামিটার অন্যান্য মান গ্রহণ করে।
- পুনরায় লোড - পরিষেবাটি অবশ্যই কনফিগারেশন ফাইলগুলি পুনরায় লোড করতে হবে।
- পুনরায় চালু - পরিষেবাটি পুনরায় চালু করতে হবে।
- শুরু - পরিষেবাটি চলমান হতে হবে। যদি পরিষেবাটি চলমান না হয় তবে পরিষেবাটি শুরু করুন।
- বন্ধ - পরিষেবা বন্ধ করতে হবে। যদি পরিষেবাটি চলমান থাকে তবে পরিষেবাটি বন্ধ করুন।
প্লেবুক চালান apt2.yaml নিম্নরূপ:
$ansible-playbook playbooks/apt2.yamlআপনি দেখতে পাচ্ছেন, প্লেবুক সফলভাবে চলেছে।
আপনি দেখতে পারেন, apache2 আমার ডেবিয়ান 10 হোস্টে পরিষেবা চলছে।
উত্তরযোগ্য অনুলিপি মডিউল নিয়ে কাজ করা
উত্তরদাতা কপি মডিউল প্রধানত আপনার কম্পিউটার থেকে দূরবর্তী হোস্টে ফাইল কপি করতে ব্যবহৃত হয়।
আগের বিভাগে, আমি আমার ডেবিয়ান 10 হোস্টে অ্যাপাচি 2 ওয়েব সার্ভার ইনস্টল করেছি। আসুন এখন একটি অনুলিপি করি index.html ডেবিয়ান 10 হোস্টের ওয়েবরুটে ফাইল করুন।
প্রথমে, একটি নতুন ডিরেক্টরি তৈরি করুন নথি পত্র/ নিম্নরূপ:
$mkdir -ভিনথি পত্রএকটি নতুন ফাইল তৈরি করুন index.html মধ্যে নথি পত্র/ নিম্নরূপ ডিরেক্টরি:
$ন্যানোনথি পত্র/index.htmlনিচের লাইনগুলো টাইপ করুন index.html ফাইল:
< html >
< মাথা >
< শিরোনাম >Ansible দ্বারা ওয়েব সার্ভার</ শিরোনাম >
</ মাথা >
< শরীর >
< h1 >LinuxHint এ স্বাগতম</ h1 >
< পৃ >এই ওয়েব সার্ভারটি Ansible দিয়ে স্থাপন করা হয়েছিল।</ পৃ >
</ শরীর >
</ html >
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
একটি নতুন উত্তরযোগ্য প্লেবুক তৈরি করুন apt3.yaml নিম্নরূপ:
$ন্যানোখেলার বই/apt3.yamlনিচের লাইনগুলো টাইপ করুন apt3.yaml ফাইল:
- হোস্ট: ডেবিয়ান 10ব্যবহারকারী: উত্তরযোগ্য
সত্যি হলো
কাজ:
- নাম: অ্যাপাচি 2 ইনস্টল করুন
উপযুক্ত:
নাম: apache2
রাষ্ট্র: সর্বশেষ
- নাম: সার্ভারে index.html অনুলিপি করুন
কপি:
src: ../নথি পত্র/index.html
গন্তব্য:/কোথায়/www/html/index.html
মোড: 0644
মালিক: www-data
গ্রুপ: www- ডাটা
- নাম: অ্যাপাচি 2 পরিষেবা শুরু করুন
সেবা:
নাম: apache2
অবস্থা: শুরু হয়েছে
সক্ষম: সত্য
এখানে, কাজ Index.html সার্ভারে অনুলিপি করুন কপি করে index.html থেকে নথি পত্র/ ডিরেক্টরি / var / www / html / ডেবিয়ান 10 হোস্টের ডিরেক্টরি।
src: ../files/index.html - সোর্স ফাইল পাথ।
dest: /var/www/html/index.html - গন্তব্য ফাইল পাথ।
মোড: 0644 - ফাইল ব্যবহারকারীর জন্য অনুমতি (6 - পড়ুন এবং লিখুন), গ্রুপ (4 - পড়ুন), এবং অন্যদের (4 - পড়ুন)।
মালিক: www-data - ফাইলের মালিককে সেট করুন www- ডাটা ।
গ্রুপ: www- ডাটা - ফাইলের গ্রুপ সেট করুন www- ডাটা ।
একবার শেষ হয়ে গেলে, টিপে ফাইলটি সংরক্ষণ করুন + এক্স অনুসরণ করে এবং এবং ।
চালান apt3.yaml নিম্নরূপ প্লেবুক:
$ansible-playbook playbooks/apt3.yamlআপনি দেখতে পারেন, কাজ Index.html সার্ভারে অনুলিপি করুন সফল হলো.
আপনি দেখতে পারেন, index.html ফাইলটি ডেবিয়ান 10 হোস্টে অনুলিপি করা হয়েছিল।
আপনি দেখতে পাচ্ছেন, ডেবিয়ান 10 ওয়েব সার্ভারটি পরিবেশন করে index.html যে পৃষ্ঠাটি আমি সবেমাত্র ডেবিয়ান 10 হোস্টে অনুলিপি করেছি।
সুতরাং, এগুলি উত্তর দেওয়ার মূল বিষয়গুলি। আপনি Ansible এর অফিসিয়াল ডকুমেন্টেশন পড়ে Ansible সম্পর্কে আরো জানতে পারেন। এই প্রবন্ধ পড়ার জন্য আপনাকে ধন্যবাদ।