Ansible directives review


  • در زمان نگارش پرونده‌ی PlayBook می‌توان از مواردی استفاده نمود که اصطلاحا به آن‌ها دستور العمل یا Directive گفته می‌شود.
  • بخشی از فهرست این دستور العمل‌ها به شرح زیر است :
tasks
handlers
defaults
vars
files
templates
meta

  • دستور العمل tasks
  • با استفاده از این دستور العمل می‌توان به یک یا چند ماژول اشاره داشت.
  • یک پرونده‌ی PlayBook می‌تواند حاوی چندین دستور العمل tasks باشد.
  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا ماژول ping در فرآیند اول سپس ماژول script در فرآیند دوم اجرا می‌شود.
---
- name: PlayBook
  hosts: centos-servers
  gather_facts: no
  tasks:
  - name: Run ping module
    ping:
  tasks:
  - name: Run a script using an executable in a non-system path
    script: /opt/script.sh
    args:
     executable: /usr/bin/bash
  • نکته: در بخش‌های آینده به ماژول ping و script پرداخته خواهد شد.

  • دستور العمل handlers
  • استفاده از این دستور العمل همانند تعیین شروط برای اجرای فرایندی جدید می‌باشد.
  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا بسته‌ی httpd بر روی گروهی خاص از خادم‌های تحت مدیریت نصب و راه اندازی شود.
    • سپس در صورتی که فرآیند نصب با موفقیت طی شد ، سرویس httpd راه اندازی شود.
---
- name: PlayBook 
  hosts: centos-servers
  tasks:
  - name: install apache web server
    yum: name=httpd state=latest
    notify:
    - start apache service
  handlers:
  - name: start apache service
    service: name=httpd state=started
  • نکته: در بخش‌های آینده به ماژول yum و همچنین استفاده از notify و handlers پرداخته خواهد شد.

  • دستور العمل defaults
  • استفاده از این دستور العمل همانند تعیین شروط برای اجرای فرایندی جدید می باشد.

  • دستور العمل vars
  • با استفاده از این دستور العمل می‌توان به معرفی و ساخت انواع متغیر پرداخت.
  • به عنوان مثال کد زیر باعث می‌شود تا :
    • ابتدا متغیری با نام my_command تعریف و مقدار whoami برای آن در نظر گرفته شود.
    • سپس محتویات این متغیر توسط ماژول command بر روی تمام خادم‌های تحت مدیریت اجرا شود.
---
- name: PlayBook 
  hosts: all
  vars:
   my_command: whoami
  tasks:
  - name: run whoami command in all servers
    command: '{{my_command}}'
  • نکته: در بخش‌های آینده به ماژول command و همچنین استفاده از متغیرها پرداخته خواهد شد.

  • دستور العمل files
  • با استفاده از این دستور العمل می توان به یک یا گروهی از پرونده ها جهت انجام کارهای مختلف اشاره نمود.

  • دستور العمل templates
  • با استفاده از این دستور العمل می توان

  • دستور العمل meta
  • استفاده از این دستور العمل همانند تعیین شروط برای اجرای فرایندی جدید می باشد.

  • به منظور مطالعه‌ی بیشتر لینک‌های زیر پیشنهاد می‌شود :
https://docs.ansible.com/ansible/latest/modules/ping_module.html

  • آزمایش شده بر روی Ansible نسخه‌ی 2.5.1
  • آزمایش شده بر روی سیستم عامل Ubuntu 18.04

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

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