Skip to content

mission-apprentissage/mongodb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MongoDB Cluster - Mission Apprentissage

Ce depot contient la configuration des différents cluster MongoDB de la Mission Apprentissage.

Architecture

Les clusters MongoDB sont composés d'un ou plus noeuds (serveur). Ils sont basés sur la configuration commune via le dépot infra.

Configuration des serveurs

MongoDB est installé sur les serveurs via les packages officiels de MongoDB en natif.

La configuration de MongoDB comprend:

  • La création des utilisateurs via le vault
  • La création du keyfile pour l'authentification des membres du cluster
  • La configuration du fichier de configuration de MongoDB avec:
    • L'utilisation du keyfile pour l'authentification interne
    • L'activation de l'authentification
    • L'activation du mode replSet
    • L'activation du mode TLS pour le chiffrement des connexions
    • La sauvegarde des données sur un volume externe (/mnt/data)
  • Le montage du volume externe pour la sauvegarde des données
  • La création d'un CRON pour la rotation des certificats TLS

Pour plus de détails sur la configuration lié à MongoDB se référer à la documentation de l'infrastructure.

En plus de MongoDB les serveurs ont un Docker Swarm pour le lancement des services système définis dans le dépot infra:

  • un conteneur cadvisor pour la supervision des conteneurs
  • un conteneur node-exporter pour la supervision du système
  • un conteneur fluentd pour la collecte des logs
  • un conteneur reverse proxy pour l'accès aux métriques par le serveur de monitoring (cadvisor, node-exporter, fluentd-prometheus-exporter).

Liste des clusters

Nom du cluster URL de connexion Noeud #1 Noeud #2 Noeud #3
mongodb-recette mongodb+srv://<credentials>@mongodb-recette.apprentissage.beta.gouv.fr mongodb-recette-1.apprentissage.beta.gouv.fr n/a n/a
mongodb-contrat mongodb+srv://<credentials>@mongodb-contrat.apprentissage.beta.gouv.fr mongodb-contrat-1.apprentissage.beta.gouv.fr n/a n/a
mongodb-bal mongodb+srv://<credentials>@mongodb-bal.apprentissage.beta.gouv.fr mongodb-bal-1.apprentissage.beta.gouv.fr mongodb-bal-2.apprentissage.beta.gouv.fr mongodb-bal-3.apprentissage.beta.gouv.fr
mongodb-lba mongodb+srv://<credentials>@mongodb-lba.apprentissage.beta.gouv.fr mongodb-lba-1.apprentissage.beta.gouv.fr mongodb-lba-2.apprentissage.beta.gouv.fr mongodb-lba-3.apprentissage.beta.gouv.fr

Déploiement

Le déploiement des clusters est fait via Ansible, mais certaines actions ne sont pas automatisées:

  • L'ajout du volume externe
  • Le formatage initial du volume externe

Pour déployer un cluster MongoDB, il est nécessaire de déployer chaque noeud individuellement. En fonction de la finalité recherchée il exiiste plusieurs cas de figure, avec chacun une procédure et documentation dédiée:

Migration

Pour migrer un cluster MongoDB existant vers la nouvelle architecture veuillez suivre la procédure Migration.

Backup et restauration

Consulter les documentations dédiées à la sauvegarde et à la restauration des données.

Suppression d'un noeud

Pour supprimer un noeud veuillez:

  • Supprimer l'adresse du noeud dans l'enregistrement DNS SRV sur alwaysdata.
  • Supprimer le noeud du cluster MongoDB via la commande .bin/mna deploy:remove:node <environnement>-<n>
  • Décommissionner le serveur et le volume externe associé.
  • Supprimer la référence du serveur dans le fichier ini de ce dépôt ainsi que celui du dépôt infra.
  • Supprimer le noeud de Percona

Dépannage

Voici une liste des problèmes courants et des solutions associées:

Vous pouvez également consulter ces pages de la documentation officielle de MongoDB:

Développement

Voir la documentation dédiée au développement

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •