Aller au contenu

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.

Ressources