पाठ 5 / 26
Playbook की बनावट
Playbook पढ़ें: hosts, vars, tasks, modules और handlers।
Plays और tasks
Playbook plays की YAML सूची है। हर play बताता है कि वह कौन-से hosts को लक्षित करता है, वैकल्पिक vars, क्रम से चलने वाले tasks की सूची, और वैकल्पिक handlers। हर task का पठनीय name होता है और वह module बुलाता है, बेहतर है पूरा योग्य नाम जैसे ansible.builtin.file। YAML indentation (spaces, कभी tabs नहीं) के प्रति संवेदनशील है, इसलिए YAML समर्थन वाला editor उपयोग करें।
Plays, tasks, modules
Playbook में plays होते हैं; हर play hosts को क्रमबद्ध tasks से जोड़ता है; हर task एक module बुलाता है।
उदाहरण playbook
यह वही site.yml है जिसे मैंने इस खंड के बाक़ी हिस्से के लिए चलाया। यह एक बार output directory बनाता है, हर web host के लिए config render करता है और handler को सूचित करता है।
---
- name: Configure web servers
hosts: web
gather_facts: false
vars:
users: [asha, ravi]
out_dir: "{{ playbook_dir }}/out"
tasks:
- name: Ensure output directory exists
ansible.builtin.file:
path: "{{ out_dir }}"
state: directory
mode: "0755"
run_once: true
delegate_to: localhost
- name: Render config
ansible.builtin.template:
src: app.conf.j2
dest: "{{ out_dir }}/{{ inventory_hostname }}.conf"
delegate_to: localhost
notify: Reload app
handlers:
- name: Reload app
ansible.builtin.debug:
msg: "reloading app on {{ inventory_hostname }}"हर task को नाम दें
अच्छे task नाम run के output को पठनीय दस्तावेज़ बनाते हैं। "Render config" पाठक को "template" से कहीं ज़्यादा बताता है।
त्वरित जाँच: हर task क्या बुलाता है?
- पूरा play
- एक module
- एक inventory
- एक vault
Answer
एक module — Task arguments के साथ एक module का एक आह्वान है।