Pour ce TP, nous allons créer un playbook Ansible qui configure un serveur Nginx sur deux machine virtuelle gérée par Vagrant. Assurez-vous d’avoir effectuer les TP précédents 1.1 concernant vagrant 1.2 et ansible puis suivez les étapes ci-dessous :
Étape 1: Modification de Vagrantfile
Ajoutez la configuration suivante à votre Vagrantfile pour rediriger les ports et désactiver les mises à jour automatiques des additions invité :
{
"name": "bullseye",
"cpus": 2,
"distro": "debian",
"family": "debian",
"gui": false,
"box": "generic/debian11",
"ip_addr": "192.168.56.2",
"memory": "2048",
"no_share": false,
"app_port": "80",
"forwarded_port": "8003",
"app_port": "443",
"forwarded_port": "8443"
},
{
"name": "focal",
"cpus": 2,
"distro": "ubuntu",
"family": "debian",
"gui": false,
"box": "ubuntu/focal64",
"ip_addr": "192.168.56.3",
"memory": "2048",
"no_share": false,
"app_port": "80",
"forwarded_port": "8010",
"app_port": "443",
"forwarded_port": "9443"
},
Rechargez la configuration de la machine Vagrant :
vagrant reload --provision bullseye focal
Étape 2: Création des fichiers nécessaires
Connectez-vous à la machine Vagrant :
vagrant ssh bullseye
Créez les fichiers nécessaires pour l’ultime playbook et les modèles Jinja :
touch webservers.yml nginx.conf.j2 index.html.j2
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj /CN=localhost -keyout nginx.key -out nginx.crt

On ajoute un groupe de serveur, composé de bullseye et focal, dans notre fichier inventory (serveur.ini) avec une verification grace à ansible-inventory
Dans l’article, suivant nous verrons en détails l’inventory.
Vous trouverez tous ces fichiers sur mon repot git. Si vous savez pas comment faire pour récupérer les fichiers je vous revoie sur l’ancien article Maximiser l’Efficacité de Vagrant : Configuration Avancée et Intégration de Services Part 1.2 ou Meilleur commande GIT Bash CLI.
Étape 3: Exécution du Playbook
Sur la machine Vagrant, exécutez le playbook Ansible :
#Verification
ansible-playbook --syntax-check webservers.yml
#Execution
ansible-playbook webservers.yml
Resultat :

Cela devrait configurer Nginx avec les redirections de port que vous avez définies dans le Vagrantfile et les certificats TLS que vous avez générés.


http://Localhost:8003
https://Localhost:8443
Sur votre navigateur web pour bullseye

http://Localhost:8010
http://Localhost:4431
Sur votre navigateur web pour Focal


Étape 3.2: Installation de « cowsay » sur la machine
Installez le package « cowsay » sur la machine et configurez Ansible pour utiliser « cowsay » pendant l’exécution du playbooks :
sudo apt-get update
sudo apt-get install cowsay -y
Ajoutez les lignes suivantes à la suite du fichier ansible.cfg
(ou décommentez-les) :
[cowsay]
cow_selection = random
cowsay_enabled_stencils=cow,bunny,kitty,koala,moose,sheep,tux
N’hésitez pas à ajuster le playbook et les fichiers de configuration selon vos besoins et réexécuter l’étape 3.
Ce qui donne :

et en résultat :

4. Debug

Si vous avez ce genre de problème n’hésitez pas à changer de port à votre guise. En effet, il existe des port qui sont réservés par votre système.

N’oubliez pas le httpS://localhost:4431, un fois fait vous arriverez à l’étape 3
Inspirer du livre ANSIBLE Up & Running