पाठ 16 / 26
Role का ढाँचा
Role का ढाँचा बनाएँ और जानें कि हर directory किसलिए है।
मानक ढाँचा
Role निश्चित ढाँचे वाली directory है जिसे Ansible लोड करना जानता है: tasks/ (काम, main.yml से शुरू), handlers/, templates/, files/, defaults/ (कम-प्राथमिकता वाले variables जिन्हें users बदल सकें), vars/ (ऊँची-प्राथमिकता वाले आंतरिक variables), meta/ (निर्भरताएँ और metadata) और tests/। तब playbooks छोटी हो जाती हैं: वे बस बताती हैं कि किन hosts पर कौन-से roles लागू हैं। ansible-galaxy role init ढाँचा बनाता है।
अपने automation को पैक करें
Roles tasks, templates, defaults और handlers को ऐसी दोबारा उपयोग होने वाली इकाई में बाँधते हैं जिसे projects में साझा किया जा सके।
Role scaffold करना, चलाकर
मैंने यह चलाया: Ansible ने role और ये directories बनाईं।
ansible-galaxy role init demo_role
ls demo_role
Output:
- Role demo_role was created successfully defaults files handlers meta README.md tasks templates tests vars
Playbook में role का उपयोग
Playbook छोटी रहती है; ब्योरे role में रहते हैं। (उदाहरण।)
---
- name: Web tier
hosts: web
become: true
roles:
- role: nginx
vars:
nginx_port: 8080
- role: app_deployत्वरित जाँच: कौन-सी role directory कम-प्राथमिकता वाले variables रखती है जिन्हें users बदल सकें?
- handlers/
- files/
- defaults/
- tests/
Answer
defaults/ — defaults/main.yml सबसे कमज़ोर variables तय करता है, जिन्हें बदलने के लिए ही बनाया गया है।