# Environments और Dynamic Inventory — Ansible: Playbooks से Servers का Automation

Source: https://www.geekswithgeeks.com/hi/ansible/prod-inventory-dynamic

> Staging और production अलग सँभालें और cloud APIs से hosts खींचें।

## Hosts बदलते हैं; inventory को पीछे चलना चाहिए

Cloud में servers आते-जाते रहते हैं, इसलिए हाथ से बदली सूचियाँ पुरानी हो जाती हैं। **Inventory plugins** (AWS, Azure, GCP, VMware और अन्य के लिए) provider से पूछते हैं और hosts को tags, regions या instance प्रकारों से समूहित करते हैं। छोटी YAML config फ़ाइल plugin चुनती है। हर environment के लिए एक inventory रखें और group variables के साथ जोड़ें, ताकि playbook वही रहे और सिर्फ़ target व डेटा अलग हों। नई inventory की ओर इशारा करते समय पहले छोटे उपसमूह पर `--limit` या check चलाएँ।

## AWS EC2 inventory plugin फ़ाइल

उदाहरण; `amazon.aws` collection और credentials चाहिए। फ़ाइल नाम `aws_ec2.yml` पर ख़त्म होना चाहिए।

```yaml
plugin: amazon.aws.aws_ec2
regions: [ap-south-1]
filters:
  tag:Environment: production
keyed_groups:
  - key: tags.Role
    prefix: role
```

**Quiz:** Cloud में dynamic inventory क्यों उपयोग करें?

- [x] Servers बदलते हैं, इसलिए host सूची provider से बननी चाहिए
- [ ] यह SSH की ज़रूरत हटाता है
- [ ] Static files अवैध हैं
- [ ] यह playbooks अपने आप छोटी करता है

*Answer:* Servers बदलते हैं, इसलिए host सूची provider से बननी चाहिए. Instances बनने और हटने पर बनी inventories सटीक रहती हैं।
