# TP Final - Vagrant + Terraform + Ansible ## Objectif - 1 VM Ubuntu et 1 VM Debian sur le réseau privé `192.168.56.0/24` - MySQL dans Docker sur Ubuntu - Mot de passe MySQL généré par Terraform - UFW sur Ubuntu : ports 22 et 3306, avec 3306 seulement depuis `192.168.56.0/24` - Test MySQL depuis Debian via Ansible - Copie du fichier SQL sur Debian - Exécution du SQL depuis Debian vers MySQL Ubuntu - Vérification avec `SHOW TABLES` sur Ubuntu - Bonus : utilisateur Debian non sudo `mysqlcaller` ## Prérequis - VirtualBox - Vagrant - Terraform - Ansible installé sur la machine hôte - Collection Ansible `community.general` pour le module `ufw` : ```bash ansible-galaxy collection install community.general ``` ## Installation rapide sous Linux Un script est fourni pour Debian/Ubuntu : ```bash bash scripts/install-deps-linux.sh ``` Le script ajoute les dépôts officiels HashiCorp et Oracle VirtualBox, installe `VirtualBox`, `Vagrant`, `Terraform`, `Ansible`, puis la collection `community.general`. ## Lancer ```bash terraform init terraform apply ``` ## Récupérer le mot de passe MySQL ```bash terraform output --raw mysql_password ``` ## Relancer uniquement Ansible ```bash ANSIBLE_CONFIG=ansible/ansible.cfg ansible-playbook -i ansible/inventory.ini ansible/site.yml ``` ## Nettoyer ```bash terraform destroy ``` Si vous avez modifié manuellement le `Vagrantfile` entre deux exécutions et que Vagrant garde des entrées obsolètes, vous pouvez nettoyer son cache avec : ```bash vagrant global-status --prune ```