একাধিক রিমোট সার্ভারের কমপ্লেক্স টাস্কগুলি স্বয়ংক্রিয় করতে কীভাবে উত্তরযোগ্য প্লেবুকগুলি ব্যবহার করবেন - পার্ট 2


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

কন্ট্রোলার মেশিনে সফ্টওয়্যারটি ইনস্টল করার পরে, পাসওয়ার্ডহীন লগইন করার জন্য কীগুলি তৈরি করে এবং সেগুলি নোডগুলিতে অনুলিপি করার পরে, উত্তরীয় ব্যবহার করে এই জাতীয় দূরবর্তী সিস্টেমগুলি পরিচালনা করার প্রক্রিয়াটি কীভাবে অনুকূলিত করা যায় তা শিখার সময় এসেছে।

এই নিবন্ধটি জুড়ে, পাশাপাশি পরবর্তীটি, আমরা নিম্নলিখিত পরীক্ষার পরিবেশটি ব্যবহার করব। সমস্ত হোস্টগুলি সেন্টোস 7 বাক্স:

Controller machine (where Ansible is installed): 192.168.0.19
Node1: 192.168.0.29
Node2: 192.168.0.30

এছাড়াও, দয়া করে নোট করুন যে উভয় নোড স্থানীয়/ইত্যাদি/উত্তরযোগ্য/হোস্ট ফাইলের ওয়েব সার্ভার বিভাগে যুক্ত করা হয়েছে:

এটি বলেছিল, আসুন বিষয়টি হাতে নিয়ে শুরু করা যাক।

উত্তরযোগ্য প্লেবুকগুলি উপস্থাপন করা হচ্ছে

পূর্ববর্তী গাইড হিসাবে বর্ণিত, আপনি নিম্নরূপ নোডগুলিতে কমান্ডগুলি চালনার জন্য উত্তরযোগ্য ইউটিলিটিটি ব্যবহার করতে পারেন:

# ansible -a "/bin/hostnamectl --static" webservers

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

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

সহজ কথায় বলতে গেলে, প্লেবুকগুলি ওয়াইএএমএল ফর্ম্যাটে লিখিত সরল পাঠ্য ফাইল এবং এতে এক বা একাধিক কী/মান জোড়া ("হ্যাশ" বা "অভিধান" নামে পরিচিত) আইটেমগুলির সাথে একটি তালিকা থাকে।

প্রতিটি প্লেবুকের অভ্যন্তরে আপনি এক বা একাধিক হোস্টের সন্ধান পাবেন (এই গ্রুপগুলির প্রত্যেককে একটি নাটকও বলা হয়) যেখানে কাঙ্ক্ষিত কাজগুলি সম্পাদন করতে হবে।

অফিসিয়াল ডক্সের একটি উদাহরণ আমাদের ব্যাখ্যা করতে সহায়তা করবে:

১. হোস্ট: এটি মেশিনগুলির একটি তালিকা (/ ইত্যাদি/উত্তর/হোস্ট অনুসারে) যেখানে নিম্নলিখিত কার্য সম্পাদন করা হবে।

2. রিমোট_উজার: রিমোট অ্যাকাউন্ট যা কার্য সম্পাদন করতে ব্যবহৃত হবে।

৩. ভার্সেস: ভেরিয়েবলগুলি রিমোট সিস্টেম (গুলি) এর আচরণ পরিবর্তন করতে ব্যবহৃত হয়।

৪. কার্যগুলি হোস্টের সাথে মেলে এমন সমস্ত মেশিনের বিরুদ্ধে, একবারে একবারে কার্যকর করা হয়। একটি নাটকের মধ্যে, সমস্ত হোস্ট একই কাজের নির্দেশনা পেতে চলেছে।

আপনার যদি কোনও নির্দিষ্ট হোস্টের জন্য সম্পর্কিত বিভিন্ন ধরণের কাজ সম্পাদন করতে হয় তবে বর্তমান প্লেবুকে অন্য একটি নাটক তৈরি করুন (অন্য কথায়, কোনও নাটকের উদ্দেশ্য হ'ল একটি নির্দিষ্ট নির্বাচনের মান-সংজ্ঞা দেওয়া) map

সেক্ষেত্রে নীচে হোস্টের নির্দেশকে যুক্ত করে আবার শুরু করে একটি নতুন প্লে শুরু করুন:

---
- hosts: webservers
  remote_user: root
  vars:
    variable1: value1
    variable2: value2
  remote_user: root
  tasks:
  - name: description for task1
    task1: parameter1=value_for_parameter1 parameter2=value_for_parameter2
  - name: description for task1
    task2: parameter1=value_for_parameter1 parameter2=value_for_parameter2
  handlers:
    - name: description for handler 1
      service: name=name_of_service state=service_status
- hosts: dbservers
  remote_user: root
  vars:
    variable1: value1
    variable2: value2
…

৫. হ্যান্ডলারগুলি এমন ক্রিয়া যা প্রতিটি নাটকের কার্য বিভাগের শেষে শুরু হয় এবং বেশিরভাগ দূরবর্তী সিস্টেমে পরিষেবাগুলি পুনরায় চালু করতে বা পুনরায় চালু করতে ব্যবহৃত হয়।

# mkdir /etc/ansible/playbooks

এবং নীচের বিষয়বস্তু সহ সেখানে apache.yml নামের একটি ফাইল রয়েছে:

---
- hosts: webservers
  vars:
    http_port: 80
    max_clients: 200
  remote_user: root
  tasks:
  - name: ensure apache is at the latest version
    yum: pkg=httpd state=latest
  - name: replace default index.html file
    copy: src=/static_files/index.html dest=/var/www/html/ mode=0644
    notify:
    - restart apache
  - name: ensure apache is running (and enable it at boot)
    service: name=httpd state=started enabled=yes
  handlers:
    - name: restart apache
      service: name=httpd state=restarted

দ্বিতীয়ত, একটি ডিরেক্টরি/স্ট্যাটিক_ফায়ালস তৈরি করুন:

# mkdir /static_files

আপনি কাস্টম সূচক HTML ফাইল সংরক্ষণ করবেন:

<!DOCTYPE html>
 <html lang="en">
 <head>
 <meta charset="utf-8"/>
 </script>
 </head>
 <body>
 <h1>Apache was started in this host via Ansible</h1><br>
<h2>Brought to you by linux-console.net</h2>
 </body>
 </html>

এটি বলেছিল যে, এখন উল্লিখিত কাজগুলি সম্পাদন করার জন্য এই প্লেবুকটি ব্যবহার করার সময় এসেছে। আপনি নোট করবেন যে উত্তরীয় প্রতিটি কাজের মাধ্যমে হোস্ট দ্বারা একবারে একবারে আসবে এবং এই জাতীয় কাজের স্থিতি সম্পর্কে প্রতিবেদন করবে:

# ansible-playbook /etc/ansible/playbooks/apache.yml

এখন দেখা যাক আমরা যখন কোনও ব্রাউজার খুলি এবং 192.168.0.29 এবং 192.168.0.30 এ নির্দেশ করি তখন কী হয়?

আসুন এক ধাপ এগিয়ে যান এবং ম্যানুয়ালি নোড 1 এবং নোড 2 এ অ্যাপাচি বন্ধ করুন এবং অক্ষম করুন:

# systemctl stop httpd
# systemctl disable httpd
# systemctl is-active httpd
# systemctl is-enabled httpd

তারপরে আবার দৌড়াও,

# ansible-playbook /etc/ansible/playbooks/apache.yml

এবার, টাস্কটি প্রতিবেদন করে যে অ্যাপাচি ওয়েব সার্ভারটি প্রতিটি হোস্টে শুরু হয়েছিল এবং সক্ষম হয়েছিল:

দয়া করে উপরের উদাহরণটিকে উত্তরীয় শক্তির এক ঝলক হিসাবে বিবেচনা করুন। যদিও এগুলি অপেক্ষাকৃত সহজ কাজ যখন অল্প সংখ্যক সার্ভারে সঞ্চালিত হয়, এটি বেশ ক্লান্তিকর এবং সময়সাপেক্ষী হয়ে উঠতে পারে যদি আপনাকে বেশ কয়েকটি (সম্ভবত শত) মেশিনে একই কাজ করতে হয়।

সারসংক্ষেপ

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

আপনি উত্তরীয় ব্যবহার করে দূরবর্তী লিনাক্স হোস্টগুলিতে কীভাবে স্বয়ংক্রিয় কাজগুলি শিখতে শুরু করছেন, আমরা আপনার চিন্তাভাবনা শুনতে চাই। প্রশ্ন, মন্তব্য এবং পরামর্শগুলিও সর্বদা স্বাগত জানায়, তাই নিচে যে কোনও সময় নীচের ফর্মটি ব্যবহার করে বিনা দ্বিধায় যোগাযোগ করুন।