- به منظور استفاده از پروندههای 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