AWX vs Ansible Tower
AWX est le projet open source upstream de Ansible Tower (Red Hat Ansible Automation Platform). AWX offre une interface web, une API REST et un systeme de gestion centralisee pour Ansible.
Concepts cles d'AWX
- Organization : Unite de regroupement de niveau superieur
- Inventaire : Liste de machines gerees (statique ou dynamique)
- Credential : Identifiants stockes en securite (SSH, cloud, vault)
- Project : Depot Git contenant les playbooks
- Job Template : Configuration prete a l'emploi pour lancer un playbook
- Workflow : Enchainement conditionnel de job templates
Installation d'AWX avec Docker
# Cloner le depot AWX
git clone https://github.com/ansible/awx.git
cd awx
# Installer l'operateur AWX (methode recommandee)
# Prerequis : un cluster Kubernetes
kubectl apply -f awx-operator.yaml
# Creer une instance AWX
cat <<EOF | kubectl apply -f -
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
namespace: awx
spec:
service_type: NodePort
EOF
Creer un Job Template
Un Job Template combine :
- Un Project (depot Git avec les playbooks)
- Un Inventaire (machines cibles)
- Un Credential (identifiants de connexion)
- Un Playbook (fichier YAML a executer)
- Des Variables supplementaires (extra vars)
API REST AWX
AWX expose une API REST complete pour l'automatisation :
# Lister les job templates
curl -u admin:password https://awx.example.com/api/v2/job_templates/
# Lancer un job template
curl -X POST -u admin:password \
-H "Content-Type: application/json" \
-d '{"extra_vars": {"env": "staging"}}' \
https://awx.example.com/api/v2/job_templates/42/launch/
# Verifier le statut d'un job
curl -u admin:password \
https://awx.example.com/api/v2/jobs/123/
Inventaires dynamiques
AWX supporte les inventaires dynamiques via des scripts ou des sources cloud :
- AWS EC2
- Azure Resource Manager
- Google Cloud Platform
- VMware vSphere
- Scripts personnalises
Avantage : AWX centralise la gestion, ajoute la tracabilite des executions et permet la delegation securisee des taches d'automatisation.