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
MongoDB
- Renforcement de la sécurité
- X509
- Déployer un cluster fragmenté
- Ajouter des fragments au cluster
- Autorisation
- Auth interne
- Configurer les certificats des membres
- Appliquer le contrôle d'accès au fichier clé
- Déployer un ensemble de répliques avec contrôle d'accès au fichier clé
- db.createUser()
- Sécuriser MongoDB avec x509
Digital Ocean
Installer
ansible-galaxy install pgkehle.mongodb
Licence
mit
Téléchargements
194
Propriétaire