برنامه نویسی

شروع با 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: ایجاد یک کتاب بازی ساده

بیایید یک کتاب راهنما برای نصب وب سرور آپاچی روی یک میزبان راه دور ایجاد کنیم.

  1. فایل Inventory را تعریف کنید

یک فایل به نام ایجاد کنید hosts.ini و آدرس های IP یا نام میزبان سرورهایی را که می خواهید مدیریت کنید مشخص کنید:

[webservers]
192.168.1.10
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. کتاب راهنما را بنویسید

یک فایل به نام ایجاد کنید 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: عبارات شرطی برای مدیریت سیستم عامل های مختلف.
  1. Playbook را اجرا کنید

برای اجرای playbook، اجرا کنید:

ansible-playbook -i hosts.ini install_apache.yml
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Ansible به سرورهای فهرست شده در زیر SSH می دهد [webservers] در hosts.ini، آپاچی را نصب کنید و مطمئن شوید که سرویس در حال اجرا است.


مثال 2: با استفاده از Ansible یک فایل ساده ایجاد کنید

فرض کنید می خواهید با استفاده از Ansible یک فایل روی یک سرور راه دور ایجاد کنید. می توانید استفاده کنید file ماژول برای آن

  1. کتاب راهنما برای ایجاد یک فایل

یک فایل جدید ایجاد کنید 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 در دستگاه راه دور با مجوزهای مشخص شده.

  1. Playbook را اجرا کنید

آن را با استفاده از:

ansible-playbook -i hosts.ini create_file.yml
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


نکاتی برای مبتدیان

  1. ساده را شروع کنید: قبل از رفتن به کتاب‌های بازی پیچیده، با کارهای اساسی مانند نصب بسته‌ها یا مدیریت خدمات شروع کنید.
  2. رویکرد مدولار: با نوشتن نقش‌ها، از وظایف در چندین کتاب بازی استفاده مجدد کنید.
  3. YAML را یاد بگیرید: درک نحو YAML برای نوشتن کتاب های نمایشی موثر ضروری است.
  4. از اجراهای خشک استفاده کنید: کتاب های بازی را بدون ایجاد تغییرات با استفاده از آن تست کنید --check گزینه:
   ansible-playbook -i hosts.ini install_apache.yml --check
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


خودکارسازی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا