pgkehle.mongodb

Ansible Role - mongodb

Configurer les composants d'un cluster MongoDB

Disponible sur Ansible Galaxy : isaackehle.mongodb

Variables

Les définitions requises sont les suivantes :

cfg_server:
  name: "mon-cfg" # (Obligatoire)
  group: "mes-serveurs-cfg" # (Obligatoire) Toujours passer l'identifiant du groupe utilisé pour les serveurs de configuration

replica_set:
  name: "mon-cfg" # nom de l'ensemble de répliques pour le serveur de configuration (préfixe du fqdn)
  group: "mes-serveurs-cfg" # nom du groupe pour tous les serveurs dans l'ensemble de répliques

Les définitions d'hôtes contiennent généralement les éléments suivants :

Ensemble de répliques uniquement

cluster_role: "replicaSet"

Serveur Routeur

cluster_role: "router"

Serveur de Configuration

cluster_role: "config"
replica_set:
  name: "mon-cfg" # nom de l'ensemble de répliques pour le serveur de configuration (préfixe du fqdn)
  group: "mes-serveurs-cfg" # nom du groupe pour tous les serveurs dans l'ensemble de répliques

Serveur de Fragment

cluster_role: "shard"
replica_set:
  name: "db-data" # nom de l'ensemble de répliques pour le serveur de fragment (préfixe du fqdn)
  group: "serveurs-db-data" # nom du groupe pour tous les serveurs dans l'ensemble de répliques

Tags/Drapeaux

J'utilise un système de drapeaux et de tags qui permet au playbook appelant de spécifier quels rôles doivent être exécutés. Par exemple :

ansible-playbook playbooks/mongodb.yml -e "{'flags': ['install']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['save_config']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['reset_storage']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['init_replica_set']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['add_shard_to_cluster']}"
ansible-playbook playbooks/mongodb.yml -e "{'flags': ['create_database']}"

Drapeaux et Variables

Drapeau But
install Installer les paquets mongo
save_config Initialisation de base. Arrêter les services, pousser les fichiers/service de configuration, redémarrer les services
reset_storage Effacer les répertoires et les journaux
init_replica_set Initialiser la configuration de l'ensemble de répliques
add_shard_to_cluster Ajouter un ensemble de répliques d'un serveur de fragment au cluster de serveurs de fragments
create_database Faire une création initiale de base de données, avec nom d'utilisateur et mot de passe
vars:
  flags: ["install"]
  new_shard:
    name: # Nom de l'ensemble de répliques à ajouter au serveur de configuration
    server: # Un des membres du nouvel ensemble de répliques à ajouter

Exemples

- hosts: all
  vars:
    auth_db: ""
    adminUser: ""
    adminPass: ""
    tgt_db: ""
    userName: ""
    userPass: ""
    roles: ["readWrite", "userAdmin"]

    # Pour l'initialisation de l'ensemble de répliques
    adminUser: ''
    adminPass: ''

  roles:
    - { role: isaackehle.mongodb, flags: ['install'] }
    - { role: isaackehle.mongodb, flags: ['save_config'] }
    - { role: isaackehle.mongodb, flags: ['reset_storage'] }
    - { role: isaackehle.mongodb, flags: ['init_replica_set'] }
    - { role: isaackehle.mongodb, flags: ['add_shard_to_cluster'] }
    - { role: isaackehle.mongodb, flags: ['create_database'] }

Vérification de code

yamllint -c yamllint.yaml .
ansible-lint .

Licence

MIT

Informations sur l'auteur

Isaac Kehle @isaackehle (twitter, github, linkedin)

Références

À propos du projet

Configure the components of a MongoDB Cluster

Installer
ansible-galaxy install pgkehle.mongodb
Licence
mit
Téléchargements
194
Propriétaire