Un inventaire Ansible statique qui liste les IPs de vos serveurs fonctionne tant que votre infrastructure ne change pas. Dès que vous opérez dans le cloud — instances auto-scaling, éphémères, qui démarrent et s’arrêtent — il faut des inventaires dynamiques.
Inventaire dynamique AWS EC2
# Installer le plugin
pip install boto3
# Créer aws_ec2.yml à la racine du projet
plugin: amazon.aws.aws_ec2
regions:
- eu-west-1
filters:
tag:Environment: production
instance-state-name: running
keyed_groups:
- key: tags.Role
prefix: role
- key: placement.availability_zone
hostnames:
- private-ip-address
# Vérifier l'inventaire généré
ansible-inventory -i aws_ec2.yml --list
ansible-inventory -i aws_ec2.yml --graph
# Utiliser dans un playbook
ansible-playbook -i aws_ec2.yml deploy.yml --limit role_webserver
Inventaire dynamique Azure
# azure_rm.yml
plugin: azure.azcollection.azure_rm
include_vm_resource_groups:
- production-rg
keyed_groups:
- key: tags.role
- key: location
auth_source: auto # utilise les credentials Azure CLI
Combiner plusieurs sources d’inventaire
inventory/
├── aws_ec2.yml # instances AWS
├── azure_rm.yml # VMs Azure
└── static.yml # équipements on-premise fixes
ansible-playbook -i inventory/ site.yml
Ansible fusionne automatiquement les trois sources. Vous ciblez des groupes qui peuvent couvrir des ressources AWS et Azure simultanément.
Cache d’inventaire : éviter les appels API répétés
# ansible.cfg
[inventory]
cache = true
cache_plugin = jsonfile
cache_path = /tmp/ansible_cache
cache_timeout = 300 # 5 minutes
Sans cache, chaque playbook fait des appels API AWS/Azure. Avec cache, le premier appel est mis en cache 5 minutes — utile pour les exécutions fréquentes.
Notre formation Ansible couvre les inventaires dynamiques et les intégrations cloud avec des ateliers sur des environnements réels.