67 lines
1.5 KiB
Markdown
67 lines
1.5 KiB
Markdown
# 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
|
|
```
|