شروع با Ansible: راهنمای مبتدیان

Summarize this content to 400 words in Persian Lang
پاسخگو یک ابزار اتوماسیون منبع باز قدرتمند است که وظایف فناوری اطلاعات مانند مدیریت پیکربندی، استقرار برنامهها و هماهنگسازی را ساده میکند. این به شما امکان میدهد کارهای تکراری را خودکار کنید، زیرساختها را بهعنوان کد مدیریت کنید و از ثبات در محیطهای خود اطمینان حاصل کنید. اگر با Ansible تازه کار هستید، این راهنما به شما کمک می کند با یک مقدمه و یک مثال اولیه شروع کنید.
Ansible چیست؟
Ansible ابزاری است که وظایف را در چندین سیستم خودکار می کند. از یک زبان ساده به نام YAML (Yet Another Markup Language) برای توصیف نحوه پیکربندی یک سیستم یا اجرای وظایف استفاده می کند. ویژگی های کلیدی Ansible عبارتند از:
بدون نماینده: برخلاف سایر ابزارهای اتوماسیون، Ansible به هیچ عاملی که روی ماشین های هدف نصب شده است نیاز ندارد. از SSH برای اتصال به آنها استفاده می کند که تنظیم آن را آسان می کند.
زبان اعلامی: شما وضعیت مورد نظر سیستم های خود را در کتاب های بازی توصیف می کنید و Ansible از دستیابی به آن وضعیت مراقبت می کند.
ناتوانی: اجرای چندین بار یک کتاب بازی مشکلی ایجاد نمی کند. Ansible تضمین می کند که حالت پایانی همیشه یکسان است.
راه اندازی Ansible
قبل از اینکه با مثالها شروع کنیم، اجازه دهید Ansible را روی دستگاه محلی شما راهاندازی کنیم.
مرحله 1: Ansible را نصب کنید
Ansible را می توان با استفاده از pip (مدیر بسته پایتون) یا از مدیر بسته سیستم شما.
برای سیستم های مبتنی بر اوبونتو/دبیان:
sudo apt update
sudo apt install ansible -y
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
برای سیستم های مبتنی بر CentOS/RHEL:
sudo yum install epel-release -y
sudo yum install ansible -y
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
استفاده از پیپ:
pip install ansible
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
برای تایید نصب، اجرا کنید:
ansible –version
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مرحله 2: دسترسی SSH به ماشین های راه دور را تنظیم کنید
Ansible از طریق SSH ارتباط برقرار می کند. باید بتوانید با استفاده از کلیدهای SSH بدون درخواست رمز عبور SSH را به دستگاه های راه دور خود وارد کنید. می توانید کلیدهای SSH را با استفاده از:
ssh-keygen -t rsa
ssh-copy-id user@remote_host
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جایگزین کنید user و remote_host با نام کاربری و آدرس IP دستگاه راه دور شما.
مفاهیم Ansible
قبل از بررسی مثالها، اجازه دهید چند اصطلاح اساسی را درک کنیم:
موجودی: فایلی که لیست سرورهایی را که Ansible مدیریت خواهد کرد تعریف می کند.
کتاب بازی: یک فایل YAML که حاوی وظایفی است که Ansible باید اجرا کند.
وظیفه: یک واحد کار، مانند نصب یک بسته یا کپی کردن یک فایل.
ماژول: Ansible از ماژول ها برای اجرای وظایف استفاده می کند (به عنوان مثال، yum، apt، copy، file).
مثال 1: ایجاد یک کتاب بازی ساده
بیایید یک کتاب راهنما برای نصب وب سرور آپاچی روی یک میزبان راه دور ایجاد کنیم.
فایل Inventory را تعریف کنید
یک فایل به نام ایجاد کنید hosts.ini و آدرس های IP یا نام میزبان سرورهایی را که می خواهید مدیریت کنید مشخص کنید:
[webservers] 192.168.1.10وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
کتاب راهنما را بنویسید
یک فایل به نام ایجاد کنید install_apache.yml:
—
– name: Install Apache on web servers
hosts: webservers
become: yes
tasks:
– name: Ensure Apache is installed
apt:
name: apache2
state: present
when: ansible_os_family == “Debian”
– name: Ensure Apache is installed (CentOS/RedHat)
yum:
name: httpd
state: present
when: ansible_os_family == “RedHat”
– name: Start and enable Apache service
service:
name: “{{ ansible_os_family == ‘Debian’ | ternary(‘apache2’, ‘httpd’) }}”
state: started
enabled: true
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در اینجا چیزی است که این کتاب بازی انجام می دهد:
name: عمل playbook را شرح می دهد.
hosts: مشخص می کند که کدام سرورها playbook را اجرا کنند.
become: yes: به Ansible می گوید استفاده کنید sudo برای اجرای وظایف
tasks: شامل اقدامات (نصب بسته ها، راه اندازی خدمات).
when: عبارات شرطی برای مدیریت سیستم عامل های مختلف.
Playbook را اجرا کنید
برای اجرای playbook، اجرا کنید:
ansible-playbook -i hosts.ini install_apache.yml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
Ansible به سرورهای فهرست شده در زیر SSH می دهد [webservers] در hosts.ini، آپاچی را نصب کنید و مطمئن شوید که سرویس در حال اجرا است.
مثال 2: با استفاده از Ansible یک فایل ساده ایجاد کنید
فرض کنید می خواهید با استفاده از Ansible یک فایل روی یک سرور راه دور ایجاد کنید. می توانید استفاده کنید file ماژول برای آن
کتاب راهنما برای ایجاد یک فایل
یک فایل جدید ایجاد کنید create_file.yml:
—
– name: Create a file on remote servers
hosts: webservers
become: yes
tasks:
– name: Create a file named “info.txt”
file:
path: /tmp/info.txt
state: touch
owner: root
mode: ‘0644’
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
با این کار یک فایل جدید ایجاد می شود /tmp/info.txt در دستگاه راه دور با مجوزهای مشخص شده.
Playbook را اجرا کنید
آن را با استفاده از:
ansible-playbook -i hosts.ini create_file.yml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نکاتی برای مبتدیان
ساده را شروع کنید: قبل از رفتن به کتابهای بازی پیچیده، با کارهای اساسی مانند نصب بستهها یا مدیریت خدمات شروع کنید.
رویکرد مدولار: با نوشتن نقشها، از وظایف در چندین کتاب بازی استفاده مجدد کنید.
YAML را یاد بگیرید: درک نحو YAML برای نوشتن کتاب های نمایشی موثر ضروری است.
از اجراهای خشک استفاده کنید: کتاب های بازی را بدون ایجاد تغییرات با استفاده از آن تست کنید –check گزینه:
ansible-playbook -i hosts.ini install_apache.yml –check
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
خودکارسازی مبارک!
پاسخگو یک ابزار اتوماسیون منبع باز قدرتمند است که وظایف فناوری اطلاعات مانند مدیریت پیکربندی، استقرار برنامهها و هماهنگسازی را ساده میکند. این به شما امکان میدهد کارهای تکراری را خودکار کنید، زیرساختها را بهعنوان کد مدیریت کنید و از ثبات در محیطهای خود اطمینان حاصل کنید. اگر با Ansible تازه کار هستید، این راهنما به شما کمک می کند با یک مقدمه و یک مثال اولیه شروع کنید.
Ansible چیست؟
Ansible ابزاری است که وظایف را در چندین سیستم خودکار می کند. از یک زبان ساده به نام YAML (Yet Another Markup Language) برای توصیف نحوه پیکربندی یک سیستم یا اجرای وظایف استفاده می کند. ویژگی های کلیدی Ansible عبارتند از:
- بدون نماینده: برخلاف سایر ابزارهای اتوماسیون، Ansible به هیچ عاملی که روی ماشین های هدف نصب شده است نیاز ندارد. از SSH برای اتصال به آنها استفاده می کند که تنظیم آن را آسان می کند.
- زبان اعلامی: شما وضعیت مورد نظر سیستم های خود را در کتاب های بازی توصیف می کنید و Ansible از دستیابی به آن وضعیت مراقبت می کند.
- ناتوانی: اجرای چندین بار یک کتاب بازی مشکلی ایجاد نمی کند. Ansible تضمین می کند که حالت پایانی همیشه یکسان است.
راه اندازی Ansible
قبل از اینکه با مثالها شروع کنیم، اجازه دهید Ansible را روی دستگاه محلی شما راهاندازی کنیم.
مرحله 1: Ansible را نصب کنید
Ansible را می توان با استفاده از pip
(مدیر بسته پایتون) یا از مدیر بسته سیستم شما.
برای سیستم های مبتنی بر اوبونتو/دبیان:
sudo apt update
sudo apt install ansible -y
برای سیستم های مبتنی بر CentOS/RHEL:
sudo yum install epel-release -y
sudo yum install ansible -y
استفاده از پیپ:
pip install ansible
برای تایید نصب، اجرا کنید:
ansible --version
مرحله 2: دسترسی SSH به ماشین های راه دور را تنظیم کنید
Ansible از طریق SSH ارتباط برقرار می کند. باید بتوانید با استفاده از کلیدهای SSH بدون درخواست رمز عبور SSH را به دستگاه های راه دور خود وارد کنید. می توانید کلیدهای SSH را با استفاده از:
ssh-keygen -t rsa
ssh-copy-id user@remote_host
جایگزین کنید user
و remote_host
با نام کاربری و آدرس IP دستگاه راه دور شما.
مفاهیم Ansible
قبل از بررسی مثالها، اجازه دهید چند اصطلاح اساسی را درک کنیم:
- موجودی: فایلی که لیست سرورهایی را که Ansible مدیریت خواهد کرد تعریف می کند.
- کتاب بازی: یک فایل YAML که حاوی وظایفی است که Ansible باید اجرا کند.
- وظیفه: یک واحد کار، مانند نصب یک بسته یا کپی کردن یک فایل.
-
ماژول: Ansible از ماژول ها برای اجرای وظایف استفاده می کند (به عنوان مثال،
yum
،apt
،copy
،file
).
مثال 1: ایجاد یک کتاب بازی ساده
بیایید یک کتاب راهنما برای نصب وب سرور آپاچی روی یک میزبان راه دور ایجاد کنیم.
- فایل Inventory را تعریف کنید
یک فایل به نام ایجاد کنید hosts.ini
و آدرس های IP یا نام میزبان سرورهایی را که می خواهید مدیریت کنید مشخص کنید:
[webservers]
192.168.1.10
- کتاب راهنما را بنویسید
یک فایل به نام ایجاد کنید install_apache.yml
:
---
- name: Install Apache on web servers
hosts: webservers
become: yes
tasks:
- name: Ensure Apache is installed
apt:
name: apache2
state: present
when: ansible_os_family == "Debian"
- name: Ensure Apache is installed (CentOS/RedHat)
yum:
name: httpd
state: present
when: ansible_os_family == "RedHat"
- name: Start and enable Apache service
service:
name: "{{ ansible_os_family == 'Debian' | ternary('apache2', 'httpd') }}"
state: started
enabled: true
در اینجا چیزی است که این کتاب بازی انجام می دهد:
-
name
: عمل playbook را شرح می دهد. -
hosts
: مشخص می کند که کدام سرورها playbook را اجرا کنند. -
become: yes
: به Ansible می گوید استفاده کنیدsudo
برای اجرای وظایف -
tasks
: شامل اقدامات (نصب بسته ها، راه اندازی خدمات). -
when
: عبارات شرطی برای مدیریت سیستم عامل های مختلف.
- Playbook را اجرا کنید
برای اجرای playbook، اجرا کنید:
ansible-playbook -i hosts.ini install_apache.yml
Ansible به سرورهای فهرست شده در زیر SSH می دهد [webservers]
در hosts.ini
، آپاچی را نصب کنید و مطمئن شوید که سرویس در حال اجرا است.
مثال 2: با استفاده از Ansible یک فایل ساده ایجاد کنید
فرض کنید می خواهید با استفاده از Ansible یک فایل روی یک سرور راه دور ایجاد کنید. می توانید استفاده کنید file
ماژول برای آن
- کتاب راهنما برای ایجاد یک فایل
یک فایل جدید ایجاد کنید create_file.yml
:
---
- name: Create a file on remote servers
hosts: webservers
become: yes
tasks:
- name: Create a file named "info.txt"
file:
path: /tmp/info.txt
state: touch
owner: root
mode: '0644'
با این کار یک فایل جدید ایجاد می شود /tmp/info.txt
در دستگاه راه دور با مجوزهای مشخص شده.
- Playbook را اجرا کنید
آن را با استفاده از:
ansible-playbook -i hosts.ini create_file.yml
نکاتی برای مبتدیان
- ساده را شروع کنید: قبل از رفتن به کتابهای بازی پیچیده، با کارهای اساسی مانند نصب بستهها یا مدیریت خدمات شروع کنید.
- رویکرد مدولار: با نوشتن نقشها، از وظایف در چندین کتاب بازی استفاده مجدد کنید.
- YAML را یاد بگیرید: درک نحو YAML برای نوشتن کتاب های نمایشی موثر ضروری است.
-
از اجراهای خشک استفاده کنید: کتاب های بازی را بدون ایجاد تغییرات با استفاده از آن تست کنید
--check
گزینه:
ansible-playbook -i hosts.ini install_apache.yml --check
خودکارسازی مبارک!