Ressources Avancées
Cette section explore des outils et concepts avancés pour tirer le meilleur parti d’Ansible.
Ansible AWX/Tower
AWX est la version open-source d’Ansible Tower, une interface web pour gérer vos playbooks et inventaires.
Installation d’AWX
Utilisez Docker pour installer AWX :
docker-compose -f awx/docker-compose.yml up -d
Fonctionnalités
- Interface graphique pour exécuter des playbooks.
- Gestion des utilisateurs et permissions.
- Planification des tâches.
Ansible Galaxy
Galaxy est une plateforme pour partager des roles et collections.
Installer un role
ansible-galaxy role install geerlingguy.apache
Installer une collection
ansible-galaxy collection install community.general
Intégration cloud
Ansible propose des modules pour AWS, Azure, GCP, etc. Exemple pour créer une instance EC2 :
- name: Lancer une instance EC2
amazon.aws.ec2_instance:
name: my-instance
key_name: my-key
instance_type: t2.micro
image_id: ami-12345678
region: us-east-1
Plugins
Les plugins étendent les fonctionnalités d’Ansible (callbacks, filters, etc.).
Exemple de filter personnalisé :
def my_filter(value):
return value.upper()
class FilterModule(object):
def filters(self):
return {
'my_filter': my_filter
}
Utilisez-le :
- name: Appliquer filtre
debug:
msg: "{{ 'hello' | my_filter }}"
Ansible et CI/CD
Intégrez Ansible dans des pipelines CI/CD (Jenkins, GitLab CI).
Exemple dans .gitlab-ci.yml :
stages:
- deploy
deploy_job:
stage: deploy
script:
- ansible-playbook -i inventory.ini playbook.yml
Bonnes pratiques avancées
- Utilisez des collections : Regroupez les modules et roles.
- Automatisez les tests : Intégrez Molecule et Testinfra.
- Surveillez les exécutions : Utilisez des plugins de callback pour les logs.