Ansible PlayBook structure


  • به منظور استفاده از پرونده‌های PlayBook ساختارهایی تعیین شده است که در قالب زبان Yaml مورد استفاده قرار می‌گیرد.
  • به عنوان مثال تکه کد زیر مربوط به ساختار زبان Yaml می‌باشد :
---
# A list of tasty fruits
- Apple
- Orange
- Strawberry
- Mango
...
  • نکته: شروع یک پرونده‌ی Yaml با کارکتر — و پایان آن با کارکتر … صورت می‌گیرد.
  • نکته: استفاده از کارکتر … در پایان پرونده‌ی Yaml ضروری نیست.

  • نکته: برای مشخص کردن موارد یا آیتم‌های درون پرونده از کارکتر – همراه با فاصله استفاده می‌شود.
  • نکته: هر یک از پارامترها مجاز به داشتن کلید و مقدار می‌باشند.
  • به عنوان مثال :
-  martin:
    name: Martin D'vloper
    job: Developer
    skills:
      - python
      - perl
      - pascal
-  tabitha:
    name: Tabitha Bitumen
    job: Developer
    skills:
      - lisp
      - fortran
      - erlang
  • مشخص کردن متغییرها به صورت زیر صورت می‌گیرد :
foo: "{{ variable }}"
  • به عنوان مثال برای استفاده از متغیر در یک پرونده‌ی PlayBook به شکل زیر عمل می‌شود :
- name: PlayBook 
  hosts: all
  vars:
   my_command: whoami
  tasks:
  - name: run whoami command in all servers
    command: '{{my_command}}'
  • نکته: با استفاده از کارکتر # در هر خط از پرونده‌ی PlayBook می‌توان توضیحات را درج نمود.
  • نکته: با استفاده از عبارت hosts مشخص کردیم که پرونده‌ی PlayBook بر روی چه گروه یا خادم‌هایی اجرا شود.
  • نکته: منظور از عبارت command در کد بالا ، ماژول command می‌باشد. می‌توان به جای استفاده از این ماژول از هر ماژول دیگری نیز استفاده نمود.
  • نکته: با استفاده از عبارت gather_facts می‌توان تعیین نمود که جمع آوری اطلاعات از تمام خادم‌ها صورت گیرد یا خیر
- name: PlayBook
  hosts: all
  gather_facts: no
  vars:
   my_command: whoami
  tasks:
  - name: run whoami command in all servers
    command: '{{my_command}}'
  • نکته: معمولا مقدار کلیدها به صورت yes ، no ، false ، true تعیین می‌شود.
  • در بخش‌های بعدی به بررسی انواع ماژول‌ها و نحوه‌ی استفاده از آن‌ها در PlayBook پرداخته خواهد شد.

  • به منظور مطالعه‌ی بیشتر لینک‌های زیر پیشنهاد می‌شود :
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html
https://oznetnerd.com/2016/11/27/ansible-playbook-structure/

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

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

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