91 lines
2.4 KiB
Markdown
91 lines
2.4 KiB
Markdown
|
|
>🚀 Ansible Training: Database & Firewall Deployment
|
|
|
|
|
|
Ce projet est un bac à sable (sandbox) destiné à apprendre et pratiquer l'automatisation avec Ansible. L'objectif est de déployer une pile de base de données sécurisée sur une machine virtuelle Linux distante.
|
|
📋 Présentation du Projet
|
|
|
|
---
|
|
L'automatisation réalise les actions suivantes :
|
|
|
|
Mise à jour des dépôts et installation du serveur/client MariaDB.
|
|
|
|
Configuration du Pare-feu via nftables (déploiement d'un fichier de configuration personnalisé).
|
|
|
|
Gestion des services : s'assure que la base de données et le firewall sont actifs et activés au démarrage.
|
|
|
|
---
|
|
|
|
### 🏗️ Architecture
|
|
|
|
Machine de contrôle : Mon PC local (sous Linux/WSL).
|
|
|
|
Machine distante (Managed Node) : VM d'entraînement Linux (Debian/Ubuntu).
|
|
|
|
IP : 192.168.1.119 (configurée dans l'inventaire).
|
|
|
|
Utilisateur : maxime avec privilèges sudo.
|
|
|
|
---
|
|
|
|
### 📁 Structure du Projet
|
|
|
|
```
|
|
Plaintext
|
|
|
|
.
|
|
├── ansible.cfg # Configuration globale d'Ansible (remote_user, become, etc.)
|
|
├── ansible/
|
|
│ ├── inventory/
|
|
│ │ └── inventory.ini # Liste des hôtes et variables de connexion
|
|
│ ├── playbook/
|
|
│ │ └── site.yml # Master Playbook (point d'entrée)
|
|
│ └── modules/ # Fichiers de configuration à déployer
|
|
│ └── nftables.conf
|
|
└── README.md # Cette documentation
|
|
|
|
```
|
|
|
|
|
|
|
|
### 🚀 Utilisation
|
|
|
|
## Pré-requis
|
|
|
|
Ansible installé localement.
|
|
|
|
L'utilitaire sshpass (pour la connexion par mot de passe).
|
|
|
|
Une VM Linux accessible via SSH.
|
|
|
|
---
|
|
|
|
## Lancer le déploiement
|
|
|
|
Pour exécuter l'intégralité de la configuration, utilise la commande suivante :
|
|
Bash
|
|
|
|
ansible-playbook -i ansible/inventory/inventory.ini ansible/playbook/site.yml -k -K
|
|
|
|
-k : Demande le mot de passe SSH.
|
|
|
|
-K : Demande le mot de passe SUDO (become).
|
|
|
|
|
|
---
|
|
|
|
### Concepts abordés
|
|
|
|
```
|
|
Au cours de cet entraînement, les concepts suivants ont été abordés :
|
|
|
|
Idempotence : Relancer le playbook ne modifie le serveur que si nécessaire.
|
|
|
|
Gestion des Handlers : Redémarrage automatique des services uniquement en cas de changement de configuration.
|
|
|
|
Escalade de privilèges : Utilisation de become pour les tâches administratives.
|
|
|
|
Structure de projet : Organisation des fichiers et gestion des chemins relatifs.
|
|
|
|
```
|