Playbook হলো একটি YAML ফাইল যা Ansible-এ বিভিন্ন কাজ করার জন্য ব্যবহার করা হয়। এটি Ansible এর মূল উপাদানগুলোর একটি, যা বিভিন্ন টাস্ক, রোল এবং মডিউল এর সমন্বয়ে তৈরি করা হয়। একটি Playbook এর গঠন বেশ সরল এবং এটি YAML সিনট্যাক্স অনুসরণ করে। নিচে একটি Playbook এর সাধারণ গঠন এবং সিনট্যাক্স নিয়ে আলোচনা করা হলো:
Playbook এর সাধারণ গঠন
---
- name: Play এর নাম (ঐচ্ছিক)
hosts: target_hosts
become: yes (root privilege প্রয়োজন হলে)
tasks:
- name: Task এর নাম (ঐচ্ছিক)
module_name:
parameter1: value1
parameter2: value2
Playbook এর উপাদানসমূহ
---:
- প্রতিটি YAML ফাইলের শুরুতে থাকে, যা নির্দেশ করে এটি একটি YAML ফাইল।
- name (ঐচ্ছিক):
- প্লে (Play) এর একটি নাম উল্লেখ করতে হয়, যা প্লে সম্পর্কে ধারণা দেয়। এটি ঐচ্ছিক, তবে এটি প্লে কে আরও বোধগম্য করে তোলে।
hosts:
- টার্গেট হোস্ট বা হোস্ট গ্রুপের নাম উল্লেখ করা হয় যেগুলোর উপর এই প্লে প্রয়োগ করা হবে।
become (ঐচ্ছিক):
yesবাnoদিয়ে উল্লেখ করা হয় প্লে রুট বা সুপার ইউজার হিসেবে চালানো হবে কি না।
tasks:
- এই অংশে টাস্কগুলো একে একে উল্লেখ করা হয়, যা প্লে চলাকালে এক্সিকিউট করা হবে।
module_name:
- টাস্কে কোন মডিউল ব্যবহার করা হবে তা উল্লেখ করা হয়, যেমন:
copy,yum,service, ইত্যাদি।
parameters:
- মডিউলের জন্য প্রয়োজনীয় প্যারামিটার ও মান দেয়া হয়।
উদাহরণ Playbook
নিচে একটি সাধারণ Playbook এর উদাহরণ দেয়া হলো, যা একটি অ্যাপাচি সার্ভার ইনস্টল এবং চালু করবে:
---
- name: Install and start Apache
hosts: webservers
become: yes
tasks:
- name: Install Apache
yum:
name: httpd
state: present
- name: Start Apache
service:
name: httpd
state: started
enabled: yes
উদাহরণটি বিশ্লেষণ:
hosts: webservers:
- প্লেটি
webserversগ্রুপের হোস্টগুলোতে প্রয়োগ হবে।
become: yes:
- রুট প্রিভিলেজ নিয়ে টাস্কগুলো এক্সিকিউট করা হবে।
tasks:
- দুটি টাস্ক আছে:
- প্রথম টাস্কটি
yumমডিউল ব্যবহার করে Apache ইনস্টল করবে। - দ্বিতীয় টাস্কটি
serviceমডিউল ব্যবহার করে Apache সার্ভিস চালু করবে এবং এটি চালু অবস্থায় রাখবে।
- প্রথম টাস্কটি
এইভাবে, Playbook ব্যবহার করে বিভিন্ন ধরণের টাস্ক বা অপারেশন অটোমেশন করা যায়। Playbook এর সিনট্যাক্স সহজ এবং এটি YAML ফরম্যাট হওয়ায় পড়া এবং লেখা সহজ।