पाठ 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 में साझा किया जा सके।

तीन चरण: ढाँचा, साझा करना, लागू करना।
चित्र 5.1 — ढाँचा, साझा करना और लागू करना।

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 तय करता है, जिन्हें बदलने के लिए ही बनाया गया है।