ajoute le portail Laravel : connexion prof/élève, session unique, gestion de classe, salle d'attente
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
aa31b6112f
commit
30e14b1c54
191 changed files with 25324 additions and 0 deletions
63
ansible/roles/portail/tasks/02-bases-donnees.yml
Normal file
63
ansible/roles/portail/tasks/02-bases-donnees.yml
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
---
|
||||
- name: créer le dossier de configuration Docker du portail
|
||||
ansible.builtin.file:
|
||||
path: "{{ portail_dossier_docker }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0750"
|
||||
|
||||
# Un seul fichier de secrets, nommé .env : docker compose le charge
|
||||
# automatiquement pour les substitutions ${...} de docker-compose.yml, et une
|
||||
# tâche plus loin le relit pour remplir le .env de Laravel avec les mêmes
|
||||
# valeurs (une seule source de vérité, jamais dans Git).
|
||||
- name: générer les secrets MariaDB/Redis de l'app (première fois seulement)
|
||||
ansible.builtin.copy:
|
||||
dest: "{{ portail_dossier_docker }}/.env"
|
||||
content: |
|
||||
MYSQL_ROOT_PASSWORD={{ lookup('community.general.random_string', length=32, special=false) }}
|
||||
MYSQL_PASSWORD={{ lookup('community.general.random_string', length=32, special=false) }}
|
||||
REDIS_PASSWORD={{ lookup('community.general.random_string', length=32, special=false) }}
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
force: false
|
||||
register: portail_secrets_generes
|
||||
|
||||
- name: lire les secrets générés
|
||||
ansible.builtin.slurp:
|
||||
src: "{{ portail_dossier_docker }}/.env"
|
||||
register: portail_secrets_brut
|
||||
|
||||
- name: "exposer les secrets comme variables (jamais affichées, no_log)"
|
||||
ansible.builtin.set_fact:
|
||||
portail_secrets: "{{ dict(portail_secrets_lignes | map('split', '=', 1)) }}"
|
||||
vars:
|
||||
portail_secrets_lignes: "{{ (portail_secrets_brut.content | b64decode).splitlines() | select('string') | list }}"
|
||||
no_log: true
|
||||
|
||||
- name: déployer docker-compose.yml (MariaDB + Redis de l'app)
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yml.j2
|
||||
dest: "{{ portail_dossier_docker }}/docker-compose.yml"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0640"
|
||||
vars:
|
||||
portail_mysql_root_password: "${MYSQL_ROOT_PASSWORD}"
|
||||
portail_mysql_password: "${MYSQL_PASSWORD}"
|
||||
portail_redis_password: "${REDIS_PASSWORD}"
|
||||
register: portail_compose_deploye
|
||||
|
||||
- name: démarrer MariaDB et Redis (app)
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ portail_dossier_docker }}"
|
||||
state: present
|
||||
register: portail_compose_resultat
|
||||
|
||||
- name: attendre que MariaDB (app) accepte les connexions
|
||||
ansible.builtin.wait_for:
|
||||
host: 127.0.0.1
|
||||
port: "{{ portail_mysql_port }}"
|
||||
delay: 2
|
||||
timeout: 60
|
||||
Loading…
Add table
Add a link
Reference in a new issue