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

Acerca del proyecto

Configure the components of a MongoDB Cluster

Instalar
ansible-galaxy install pgkehle.mongodb
Licencia
mit
Descargas
194
Propietario