TP Bonus - Serveur de contrôle AWX + Ansible Vault
Installer AWX ou Semaphore
- AWX : https://ansible.readthedocs.io/projects/awx-operator/en/latest/installation/basic-install.html Sur Kubernetes avec minikube ou k3s
- Semaphore : https://github.com/ansible-semaphore/semaphore
sudo snap install semaphore
sudo semaphore user add --admin --name "Your Name" --login your_login --email your-email@examaple.com --password your_password
puis se connecter sur le port 3000
Installer AWX
- Installer k3s :
curl -sfL https://get.k3s.io | sh
alias kubectl="sudo k3s kubectl"
- Puis suivre ces instructions : (inspiré de https://ansible.readthedocs.io/projects/awx-operator/en/latest/installation/basic-install.html)
git clone https://github.com/ansible/awx-operator.git
cd awx-operator
git checkout tags/2.19.1
sudo make deploy
Créer un fichier awx-demo.yml :
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
spec:
service_type: nodeport
Puis :
kubectl apply -f awx-demo.yml -n awx
kubectl get secret -n awx awx-demo-admin-password -o jsonpath="{.data.password}" | base64 --decode ; echo
echo "Se connecter en localhost à ce port :"
kubectl get svc -n awx awx-demo-service -o=jsonpath='{.spec.ports[?(@.nodePort)].nodePort}'
Explorer AWX
Identifiez vous sur awx avec le login
adminet le mot de passe précédemment configuré.Dans la section Modèle de projet, importez votre projet. Un job d'import se lance. Si vous avez mis le fichier
requirements.ymldansrolesles roles devraient être automatiquement installés.Dans la section credentials, créez un credential de type machine. Dans la section clé privée copiez le contenu du fichier
~/.ssh/id_ssh_tp(ou autre nom) que nous avons configuré comme clé SSH de nos machines. Ajoutez également la passphrase si vous l'avez configuré au moment de la création de cette clé.Créez une ressource inventaire. Créez simplement l'inventaire avec un nom au départ. Une fois créé vous pouvez aller dans la section
sourceet choisir de l'importer depuis leprojet, sélectionnezinventory.cfgque nous avons configuré précédemment.Pour tester tout cela vous pouvez lancez une tâche ad-hoc
pingdepuis la section inventaire en sélectionnant une machine et en cliquant sur le boutonexecuter.Allez dans la section modèle de job et créez un job en sélectionnant le playbook
site.yml.Exécutez ensuite le job en cliquant sur la fusée. Vous vous retrouvez sur la page de job de AWX. La sortie ressemble à celle de la commande mais vous pouvez en plus explorer les taches exécutées en cliquant dessus.
Modifiez votre job, dans la section
Planifierconfigurer l'exécution du playbooksite.ymltoutes les 5 minutes.Allez dans la section planification. Puis visitez l'historique des Jobs.