feat: initial commit
This commit is contained in:
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user