🎯 Definicja
Inventory to źródło prawdy o Twojej infrastrukturze. To lista serwerów, którymi zarządza Ansible. Może być prostym plikiem tekstowym (Static) lub programem, który pyta chmurę (Dynamic).
🔑 Kluczowe punkty
- Static Inventory: Plik
.inilub.yaml, gdzie wpisujesz IP ręcznie. Dobre na start i dla małych środowisk. - Dynamic Inventory: Skrypt (np. Python), który odpytuje AWS/Azure/VMware: “Jakie mam serwery?“. Dobre dla chmury (Autoscaling).
- Grupy: Możesz grupować serwery (
[webservers],[dbservers]). - Zagnieżdżanie: Grupa może zawierać inne grupy (
[production:children] webservers dbservers).
📚 Szczegółowe wyjaśnienie
Przykład Static Inventory (inventory.ini):
[webservers]
node1.example.com
192.168.1.5
[dbservers]
node2.example.com
[production:children]
webservers
dbserversUżycie Dynamic Inventory:
Zamiast pliku tekstowego, podajesz skrypt: ansible -i my_cloud_script.py all -m ping.
Ansible uruchamia skrypt, bierze JSON z wyjścia i używa go jako listy hostów.
💡 Przykład zastosowania
Masz Auto Scaling Group w AWS. Rano masz 3 serwery, wieczorem 50.
Ręczne wpisywanie IP do pliku jest niemożliwe.
Używasz pluginu aws_ec2, który dynamicznie pobiera listę instancji z tagiem Environment=Production.
📌 Źródła
- Ansible Inventory Guide.
👽 Brudnopis
- Nie bój się zaczynać od statycznego pliku. Migracja na dynamiczny jest łatwa, gdy skala tego wymaga.