mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
documentation for ansible deployment
This commit is contained in:
parent
3fd562c144
commit
e08d1477ec
3 changed files with 120 additions and 1 deletions
40
ansible/README.md
Normal file
40
ansible/README.md
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# Déploiement de Services avec Ansible et Docker Compose
|
||||||
|
|
||||||
|
Ce guide explique comment utiliser Ansible pour configurer et déployer des services Docker avec `docker-compose`.
|
||||||
|
|
||||||
|
## Prérequis
|
||||||
|
|
||||||
|
1. **Ansible** : Assurez-vous qu'Ansible est installé sur votre système.
|
||||||
|
- [Guide d'installation d'Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html)
|
||||||
|
|
||||||
|
2. **Docker et Docker Compose** : Docker doit être installé et configuré pour fonctionner avec Ansible.
|
||||||
|
- Installez Docker : [Documentation Docker](https://docs.docker.com/get-docker/)
|
||||||
|
- Docker Compose est inclus comme plugin Docker dans les versions récentes de Docker.
|
||||||
|
|
||||||
|
3. **WSL (pour Windows)** : Si vous utilisez Windows, assurez-vous d'avoir configuré WSL et un environnement Ubuntu.
|
||||||
|
|
||||||
|
## Structure du projet
|
||||||
|
|
||||||
|
Le fichier `deploy.yml` contient les tâches Ansible nécessaires pour télécharger, configurer, et démarrer les services Docker en utilisant Docker Compose.
|
||||||
|
|
||||||
|
## Installation et de déploiement
|
||||||
|
|
||||||
|
### Lancer le déploiement avec Ansible
|
||||||
|
|
||||||
|
Pour exécuter le playbook Ansible `deploy.yml`, utilisez la commande suivante depuis le répertoire racine du projet :
|
||||||
|
|
||||||
|
`ansible-playbook -i inventory.ini deploy.yml`
|
||||||
|
|
||||||
|
### Vérification du déploiement
|
||||||
|
|
||||||
|
Une fois le playbook exécuté, Ansible télécharge Docker et Docker Compose, télécharge le fichier `docker-compose.yaml`, démarre Docker et lance les conteneurs spécifiés.
|
||||||
|
|
||||||
|
### Configuration et contenu du Playbook (deploy.yml)
|
||||||
|
Le playbook deploy.yml exécute les étapes suivantes :
|
||||||
|
|
||||||
|
1. Télécharge Docker Compose si ce dernier n'est pas encore présent.
|
||||||
|
2. Vérifie l'installation de Docker Compose pour s'assurer qu'il est opérationnel.
|
||||||
|
3. Démarre le service Docker si ce n'est pas déjà le cas.
|
||||||
|
4. Télécharge le fichier docker-compose.yaml depuis le dépôt Git spécifié.
|
||||||
|
5. Lance Docker Compose pour déployer les conteneurs définis dans docker-compose.yaml.
|
||||||
|
6. Vérifie l'état des conteneurs et affiche les conteneurs en cours d'exécution.
|
||||||
|
|
@ -27,3 +27,12 @@
|
||||||
ansible.builtin.shell:
|
ansible.builtin.shell:
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
- name: Vérification des services Docker
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: docker ps
|
||||||
|
register: docker_ps_output
|
||||||
|
|
||||||
|
- name: Afficher l'état des conteneurs Docker
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "{{ docker_ps_output.stdout }}"
|
||||||
70
ansible/docker-compose.yaml
Normal file
70
ansible/docker-compose.yaml
Normal file
|
|
@ -0,0 +1,70 @@
|
||||||
|
services:
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
image: fuhrmanator/evaluetonsavoir-frontend:latest
|
||||||
|
container_name: frontend
|
||||||
|
ports:
|
||||||
|
- "5173:5173"
|
||||||
|
environment:
|
||||||
|
VITE_BACKEND_URL: "http://localhost:4400"
|
||||||
|
# don't define VITE_BACKEND_SOCKET_URL so it will default to window.location.host
|
||||||
|
# VITE_BACKEND_SOCKET_URL: ""
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
backend:
|
||||||
|
image: fuhrmanator/evaluetonsavoir-backend:latest
|
||||||
|
container_name: backend
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
environment:
|
||||||
|
PORT: 3000
|
||||||
|
MONGO_URI: "mongodb://mongo:27017/evaluetonsavoir"
|
||||||
|
MONGO_DATABASE: evaluetonsavoir
|
||||||
|
EMAIL_SERVICE: gmail
|
||||||
|
SENDER_EMAIL: infoevaluetonsavoir@gmail.com
|
||||||
|
EMAIL_PSW: 'vvml wmfr dkzb vjzb'
|
||||||
|
JWT_SECRET: haQdgd2jp09qb897GeBZyJetC8ECSpbFJe
|
||||||
|
FRONTEND_URL: "http://localhost:5173"
|
||||||
|
depends_on:
|
||||||
|
- mongo
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
# Ce conteneur sert de routeur pour assurer le bon fonctionnement de l'application
|
||||||
|
nginx:
|
||||||
|
image: fuhrmanator/evaluetonsavoir-routeur:latest
|
||||||
|
container_name: nginx
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
depends_on:
|
||||||
|
- backend
|
||||||
|
- frontend
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
# Ce conteneur est la base de données principale pour l'application
|
||||||
|
mongo:
|
||||||
|
image: mongo
|
||||||
|
container_name: mongo
|
||||||
|
ports:
|
||||||
|
- "27017:27017"
|
||||||
|
tty: true
|
||||||
|
volumes:
|
||||||
|
- mongodb_data:/data/db
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
# Ce conteneur assure que l'application est à jour en allant chercher s'il y a des mises à jours à chaque heure
|
||||||
|
watchtower:
|
||||||
|
image: containrrr/watchtower
|
||||||
|
container_name: watchtower
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
- TZ=America/Montreal
|
||||||
|
- WATCHTOWER_CLEANUP=true
|
||||||
|
- WATCHTOWER_DEBUG=true
|
||||||
|
- WATCHTOWER_INCLUDE_RESTARTING=true
|
||||||
|
- WATCHTOWER_SCHEDULE=0 0 5 * * * # At 5 am everyday
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mongodb_data:
|
||||||
|
external: false
|
||||||
Loading…
Reference in a new issue