feat: initial commit

This commit is contained in:
lucasdpt
2026-06-04 09:45:51 +02:00
commit 4f9511f313
15 changed files with 600 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# 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
```