Passer au contenu principal

Tower / AWX (Ansible)

Job Templates et exécution

Dans AWX, un Job Template est l'unité d'exécution équivalente à une commande ansible-playbook. Il regroupe un playbook, un inventaire, des credentials, et des paramètres d'exécution. C'est ce qu'on lance, ce qu'on planifie, et ce qu'on expose à l'équipe.

Credentials

AWX gère les credentials de façon centralisée et chiffrée. Les types principaux :

  • Machine : clé SSH privée + username pour se connecter aux hôtes cibles. Le credential est injecté à l'exécution, jamais visible en clair dans l'interface.
  • Source Control (SCM) : clé SSH ou token HTTPS pour cloner le dépôt Git des playbooks.
  • Vault : mot de passe Ansible Vault, utilisé automatiquement lors de l'exécution.
  • Container Registry : pour puller des Execution Environments depuis un registry privé.

Créer un credential : Settings › Credentials › Add. Le secret n'est jamais réaffiché après création : conserver une copie dans un gestionnaire de mots de passe.

Projets

Un projet AWX est un lien vers un dépôt Git contenant les playbooks et rôles. AWX clone et met à jour ce dépôt automatiquement.

Configuration d'un projet :

  • SCM Type : Git
  • SCM URL : URL du dépôt (SSH ou HTTPS)
  • SCM Branch : branche à utiliser (main, prod...)
  • SCM Credential : credential Git créé précédemment
  • Update Revision on Launch : mettre à jour le dépôt à chaque exécution (recommandé)

Inventaires AWX

Trois types d'inventaires :

  • Statique : saisi directement dans l'interface, format INI ou YAML
  • Depuis un projet : fichier d'inventaire dans le dépôt Git (le plus courant)
  • Dynamique : source externe (AWS EC2, VMware, Netbox...) via un Inventory Source configuré dans AWX

Job Templates

Créer un Job Template : Templates › Add › Job Template.

Champs essentiels :

  • Name : nom descriptif ("Deploy web - Prod")
  • Job Type : Run (exécution) ou Check (dry-run)
  • Inventory : inventaire à utiliser
  • Project : dépôt Git source
  • Playbook : chemin dans le projet (ex: playbooks/web.yml)
  • Credentials : machine credential(s) et vault credential si nécessaire
  • Variables extra : équivalent de -e en CLI
  • Limit : équivalent de --limit
  • Tags/Skip Tags : équivalent de --tags
  • Verbosity : niveau de log (0 = normal, 2 = debug)

Schedules

Un schedule associe un Job Template à un planning d'exécution, directement depuis la fiche du template :

Champs :

  • Name : "Sauvegarde quotidienne prod"
  • Start date/time : première exécution
  • Repeat frequency : toutes les heures, jours, semaines, ou expression cron
  • Timezone : Europe/Paris

Notifications

AWX peut notifier sur succès, échec, ou démarrage d'un job. Types disponibles : email, Slack, Mattermost, webhook HTTP, PagerDuty, Grafana.

Configuration : Administration › Notification Templates › Add. Ensuite, associer la notification à un ou plusieurs Job Templates.

Workflows

Un Workflow Template enchaîne plusieurs Job Templates avec une logique conditionnelle : si le job A réussit, lancer B, sinon lancer C. Utile pour les pipelines de déploiement multi-étapes (déployer staging, tester, déployer prod).

Deploy Staging ──(succès)──► Test E2E ──(succès)──► Deploy Prod
                                        └─(échec)──► Notify Slack