Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Générer un dump de base de données par tag de migration #1229

Open
2 tasks
thom4parisot opened this issue Jan 29, 2025 · 8 comments
Open
2 tasks

Générer un dump de base de données par tag de migration #1229

thom4parisot opened this issue Jan 29, 2025 · 8 comments

Comments

@thom4parisot
Copy link
Member

thom4parisot commented Jan 29, 2025

À faire dans le déploiement Ansible :

  • générer un fichier par tag de déploiement
  • supprimer les fichiers plus anciens que X mois
@ggrossetie
Copy link
Collaborator

@thom4parisot est-ce qu'on ajoute un script (ou une ligne de commande) dans la tâche npm preprod:

"preprod": "npm run migrations",

Sinon on peut lancer le script de backup avant de lancer le déploiement dans le GitHub Action:

- name: Run playbook

C'est peut être mieux d'utiliser cette seconde option sinon lors d'un redémarrage du conteneur on va aussi lancer un dump.

@thom4parisot
Copy link
Member Author

J'aurais plutôt délégué ça à Ansible 👍🏻 (genre la condition pour que le backup se lance, c'est si le fichier /path/to/backups/{{ mongo_server_db }}--{{ app_version }}.bson.gz est absent)

@ggrossetie
Copy link
Collaborator

ggrossetie commented Feb 5, 2025

J'aurais plutôt délégué ça à Ansible 👍🏻 (genre la condition pour que le backup se lance, c'est si le fichier /path/to/backups/{{ mongo_server_db }}--{{ app_version }}.bson.gz est absent)

Je sais pas trop si c'est la philosophie de l'outil de lancer une commande de backup. Ansible est surtout utilisé pour installer/configurer un serveur.
J'ai trouvé des tâches Ansible mais le principe est plutôt de configurer la stratégie de backup comme https://github.com/lafranceinsoumise/ansible-backup

Je pense que ça va rajouter une abstraction pour pas grand chose. Est-ce que tu vois des inconvénients à déclencher le backup lors du déploiement via les GitHub Actions ?

@thom4parisot
Copy link
Member Author

Oui pas de problème :)

@ggrossetie
Copy link
Collaborator

Je pense que ça serait bien d'avoir un petit script Bash pour faire le backup (plutôt que de lancer une commande via SSH).
Dans ce cas, utiliser Ansible semble plutôt une bonne idée :

Si on veut garder le script de backup relativement simple, on peut rajouter des conditions when sur le lancement de la commande : https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_conditionals.html#basic-conditionals-with-when

Par exemple, on pourrait faire le backup uniquement sur l'environnement de production et uniquement si le fichier n'existe pas déjà.

Bref, je change d'avis et je te rejoins sur le fait d'utiliser Ansible 🤝

@ggrossetie
Copy link
Collaborator

Lors de l'installation initiale, le conteneur mongo-stylo ne sera pas running. Est-ce que je rajoute une condition dans le script ?

docker inspect -f '{{.State.Status}}' "mongo-stylo" | grep -q "running"

Sinon il faudrait qu'on pose un fichier qui indique que l'installation initial a été faite ?

@thom4parisot
Copy link
Member Author

Hm, si le dump est lancé en mode docker run, y'a pas besoin que la base soit initialement up, non ?

Je pense surtout au fait que si on dump la base de données pendant le déploiement, l'opération se fait dans un conteneur différent de celui de la base de données en cours de fonctionnement.

@ggrossetie
Copy link
Collaborator

Oui je n'y avais pas pensé, j'étais parti sur un docker exec.
Par contre, je ne sais pas si ça fonctionne d'avoir deux conteneurs qui tournent sur les mêmes fichiers.

Et il faut aussi que je regarde ce que ça fait si la base n'existe pas :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants