- به منظور استفاده از پروندههای PlayBook ساختارهایی تعیین شده است که در قالب زبان Yaml مورد استفاده قرار میگیرد.
- به عنوان مثال تکه کد زیر مربوط به ساختار زبان Yaml میباشد :
|
1 2 3 4 5 6 7 |
<span style="color: #ff0000;">---</span> # A list of tasty fruits - Apple - Orange - Strawberry - Mango <span style="color: #ff0000;">...</span> |
- نکته: شروع یک پروندهی Yaml با کارکتر — و پایان آن با کارکتر … صورت میگیرد.
- نکته: استفاده از کارکتر … در پایان پروندهی Yaml ضروری نیست.
- نکته: برای مشخص کردن موارد یا آیتمهای درون پرونده از کارکتر – همراه با فاصله استفاده میشود.
- نکته: هر یک از پارامترها مجاز به داشتن کلید و مقدار میباشند.
- به عنوان مثال :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<span class="p p-Indicator">-</span> <span class="nt">martin</span><span class="p">:</span> <span class="nt">name</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">Martin D'vloper</span> <span class="nt">job</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">Developer</span> <span class="nt">skills</span><span class="p">:</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">python</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">perl</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">pascal</span> <span class="p p-Indicator">-</span> <span class="nt">tabitha</span><span class="p">:</span> <span class="nt">name</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">Tabitha Bitumen</span> <span class="nt">job</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">Developer</span> <span class="nt">skills</span><span class="p">:</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">lisp</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">fortran</span> <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">erlang</span> |
- مشخص کردن متغییرها به صورت زیر صورت میگیرد :
|
1 |
<span class="nt">foo</span><span class="p">:</span> <span class="s">"</span><span class="cp">{{</span> <span class="nv">variable</span> <span class="cp">}}</span><span class="s">"</span> |
- به عنوان مثال برای استفاده از متغیر در یک پروندهی PlayBook به شکل زیر عمل میشود :
|
1 2 3 4 5 6 7 |
- name: PlayBook hosts: all vars: my_command: whoami tasks: - name: run whoami command in all servers command: '<span style="color: #ff0000;">{{my_command}}</span>' |
- نکته: با استفاده از کارکتر # در هر خط از پروندهی PlayBook میتوان توضیحات را درج نمود.
- نکته: با استفاده از عبارت hosts مشخص کردیم که پروندهی PlayBook بر روی چه گروه یا خادمهایی اجرا شود.
- نکته: منظور از عبارت command در کد بالا ، ماژول command میباشد. میتوان به جای استفاده از این ماژول از هر ماژول دیگری نیز استفاده نمود.
- نکته: با استفاده از عبارت gather_facts میتوان تعیین نمود که جمع آوری اطلاعات از تمام خادمها صورت گیرد یا خیر
|
1 2 3 4 5 6 7 8 |
- 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 پرداخته خواهد شد.
- به منظور مطالعهی بیشتر لینکهای زیر پیشنهاد میشود :
|
1 2 3 |
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