1.0
This commit is contained in:
90
README.md
Normal file
90
README.md
Normal file
@@ -0,0 +1,90 @@
|
||||
|
||||
>🚀 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.
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user