Ansible এ ভ্যারিয়েবল এবং ফ্যাক্ট হলো দুটি গুরুত্বপূর্ণ উপাদান যা প্লেবুকের কার্যকারিতা ও কাস্টমাইজেশন বাড়াতে সাহায্য করে। এদের মাধ্যমে আপনি প্লেবুকে ডাইনামিক কনফিগারেশন বা তথ্য যোগ করতে পারেন।
ভ্যারিয়েবল (Variables)
Ansible এ ভ্যারিয়েবল হলো এমন কিছু মান (values) যা আপনি প্লেবুক, রোল, বা টাস্কে ব্যবহার করতে পারেন। এটি পুনঃব্যবহারযোগ্য কোড তৈরিতে সাহায্য করে এবং প্লেবুককে ডাইনামিক বা পরিবর্তনশীল করে তোলে।
ভ্যারিয়েবল ব্যবহার করার কিছু উপায়:
- প্লেবুকের মধ্যে সরাসরি
- গ্রুপ ভ্যারিয়েবল ফাইল বা হোস্ট ভ্যারিয়েবল ফাইলে
- কমান্ড লাইনে
--extra-varsদিয়ে - ফ্যাক্টস বা অন্যান্য উৎস থেকে
উদাহরণ:
---
- name: Install and configure Apache
hosts: webservers
become: yes
vars:
apache_package: apache2
apache_service: apache2
tasks:
- name: Install Apache
apt:
name: "{{ apache_package }}"
state: present
- name: Start Apache service
service:
name: "{{ apache_service }}"
state: started
enabled: yes
এখানে, apache_package এবং apache_service নামে দুটি ভ্যারিয়েবল ব্যবহার করা হয়েছে যা প্লেবুকের বিভিন্ন স্থানে একই মান (values) রেফার করে।
ফ্যাক্ট (Facts)
ফ্যাক্টস হলো Ansible এর মাধ্যমে গ্যাদার করা সিস্টেম ইনফরমেশন বা তথ্য। Ansible প্লেবুক চালানোর সময় setup মডিউল ব্যবহার করে স্বয়ংক্রিয়ভাবে হোস্ট মেশিন থেকে ফ্যাক্টস সংগ্রহ করে, যেমন: অপারেটিং সিস্টেম, মেমরি, সিপিইউ, নেটওয়ার্ক ইন্টারফেস ইত্যাদি।
ফ্যাক্টস ব্যবহার করার উদ্দেশ্য:
- হোস্টের কনফিগারেশন বা অবস্থা সম্পর্কে তথ্য জানা
- প্লেবুকে নির্দিষ্ট টাস্ক বা কনফিগারেশন কন্ডিশনাল বা ডাইনামিকভাবে চালানো
উদাহরণ:
---
- name: Display OS information
hosts: all
gather_facts: yes
tasks:
- name: Print the OS information
debug:
msg: "The operating system is {{ ansible_distribution }} and version is {{ ansible_distribution_version }}"
এখানে, ansible_distribution এবং ansible_distribution_version হলো ফ্যাক্টস, যা হোস্টের অপারেটিং সিস্টেমের নাম ও ভার্সন সম্পর্কে তথ্য প্রদান করে।
ভ্যারিয়েবল বনাম ফ্যাক্টস:
| ভ্যারিয়েবল | ফ্যাক্টস |
|---|---|
| ইউজার দ্বারা নির্ধারিত মান যা প্লেবুক বা রোল-এ ব্যবহার করা হয়। | Ansible স্বয়ংক্রিয়ভাবে হোস্ট থেকে সংগ্রহ করা তথ্য। |
| YAML ফাইলে বা কমান্ড লাইনে নির্ধারণ করা যায়। | প্লেবুক চালানোর সময় স্বয়ংক্রিয়ভাবে সংগ্রহ করা হয়। |
| সাধারণত স্থায়ী বা প্রি-ডিফাইনড মান হিসেবে থাকে। | হোস্টের কনফিগারেশন বা চলমান অবস্থার উপর নির্ভরশীল। |
সংক্ষেপে
- ভ্যারিয়েবল: এটি প্লেবুকে কাস্টম মান দেয় যা ডাইনামিক এবং পুনরায় ব্যবহারযোগ্য।
- ফ্যাক্টস: হোস্ট মেশিন থেকে স্বয়ংক্রিয়ভাবে সংগ্রহ করা তথ্য যা প্লেবুকে কন্ডিশনাল বা ডাইনামিক টাস্ক সম্পাদনে সাহায্য করে।