pgkehle.mongodb
Rol de Ansible - mongodb
Configurar los componentes de un Clúster de MongoDB
Disponible en Ansible Galaxy: isaackehle.mongodb
Variables
Las definiciones requeridas son las siguientes:
cfg_server:
name: "mi-cfg" # (Requerido)
group: "mi-cfg-servidores" # (Requerido) Siempre pasa el ID del grupo utilizado para los servidores de configuración
replica_set:
name: "mi-cfg" # nombre del conjunto de réplicas para el servidor de configuración (prefijo del fqdn)
group: "mi-cfg-servidores" # nombre del grupo para todos los servidores en el conjunto de réplicas
Las definiciones de host típicamente contienen lo siguiente:
Solo Conjunto de Réplicas
cluster_role: "replicaSet"
Servidor Router
cluster_role: "router"
Servidor de Configuración
cluster_role: "config"
replica_set:
name: "mi-cfg" # nombre del conjunto de réplicas para el servidor de configuración (prefijo del fqdn)
group: "mi-cfg-servidores" # nombre del grupo para todos los servidores en el conjunto de réplicas
Servidor de Fragmento
cluster_role: "shard"
replica_set:
name: "db-data" # nombre del conjunto de réplicas para el servidor de fragmento (prefijo del fqdn)
group: "db-data-servidores" # nombre del grupo para todos los servidores en el conjunto de réplicas
Etiquetas/Bandera
Utilizo un sistema de banderas y etiquetas que permite al playbook que llama especificar qué roles se ejecutan. Por ejemplo:
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']}"
Banderas y Variables
Bandera | Propósito |
---|---|
install | Instalar los paquetes de Mongo |
save_config | Inicialización básica. Detener servicios, enviar archivos de servicio/config, reiniciar servicios |
reset_storage | Limpiar directorios y registros |
init_replica_set | Inicializar la configuración del conjunto de réplicas |
add_shard_to_cluster | Agregar un conjunto de réplicas de un servidor de fragmento al clúster de servidores de fragmento |
create_database | Hacer una creación inicial de la base de datos, con nombre de usuario y contraseña |
vars:
flags: ["install"]
new_shard:
name: # Nombre del conjunto de réplicas para agregar al servidor de configuración
server: # Uno de los miembros del nuevo conjunto de réplicas a agregar
Ejemplos
- hosts: all
vars:
auth_db: ""
adminUser: ""
adminPass: ""
tgt_db: ""
userName: ""
userPass: ""
roles: ["readWrite", "userAdmin"]
# Para cuando se inicializa el conjunto de réplicas
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'] }
Linting
yamllint -c yamllint.yaml .
ansible-lint .
Licencia
MIT
Información del Autor
Isaac Kehle @isaackehle (twitter, github, linkedin)
Referencias
MongoDB
- Endurecimiento de seguridad
- X509
- Desplegar un clúster de fragmentos
- Agregar fragmentos al clúster
- Autorización
- Autenticación interna
- Configurar certificados de miembros
- Hacer cumplir el control de acceso del archivo clave
- Desplegar conjunto de réplicas con control de acceso de archivo clave
- db.createUser()
- Asegurar MongoDB con x509
Digital Ocean
Instalar
ansible-galaxy install pgkehle.mongodb
Licencia
mit
Descargas
194
Propietario