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
-een 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