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.
|
||||
|
|
@ -25,5 +25,14 @@
|
|||
|
||||
- name: Lancer Docker Compose
|
||||
ansible.builtin.shell:
|
||||
docker-compose up -d
|
||||
docker-compose up -d
|
||||
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