पाठ 3 / 26

Inventory: Hosts और Groups

INI inventory में hosts, groups, groups के groups और group variables वर्णित करें।

Ansible को बताएँ क्या मौजूद है

Inventory उन hosts की सूची देता है जिन्हें Ansible सँभालता है और उन्हें groups में व्यवस्थित करता है ताकि आप उन्हें साथ लक्षित कर सकें (web, db, prod)। Group में :children से दूसरे groups हो सकते हैं, और :vars group से variables जोड़ता है। Inventory INI या YAML files, या cloud provider से पढ़ने वाली dynamic scripts/plugins हो सकती हैं। Ansible आपकी inventory को कैसे समझता है यह देखने के लिए ansible-inventory --graph उपयोग करें।

INI inventory

ansible_connection=local सिर्फ़ इस डेमो के लिए है। असली servers के लिए उनके hostnames या IPs और SSH उपयोग करें।

[web]
web1 ansible_connection=local
web2 ansible_connection=local

[db]
db1 ansible_connection=local

[prod:children]
web
db

[web:vars]
http_port=8080

Ansible इसे कैसे देखता है

मैंने ऊपर की फ़ाइल पर ansible-inventory -i inventory.ini --graph चलाया। web और db, prod के भीतर हैं।

ansible-inventory -i inventory.ini --graph

Output:

@all:
  |--@ungrouped:
  |--@prod:
  |  |--@web:
  |  |  |--web1
  |  |  |--web2
  |  |--@db:
  |  |  |--db1

त्वरित जाँच: INI inventory में `[prod:children]` क्या करता है?

  • Group को encrypt करता है
  • prod group हटाता है
  • children नाम का नया host बनाता है
  • सूचीबद्ध groups को prod का सदस्य बनाता है
Answer

सूचीबद्ध groups को prod का सदस्य बनाता है — :children प्रत्यय का मतलब है कि प्रविष्टियाँ parent के अधीन groups हैं।