pgkehle.mongodb

Ansible Rolle - mongodb

Konfigurieren der Komponenten eines MongoDB Clusters

Verfügbar auf Ansible Galaxy: isaackehle.mongodb

Variablen

Die erforderlichen Definitionen sind wie folgt:

cfg_server:
  name: "my-cfg" # (Erforderlich)
  group: "my-cfg-servers" # (Erforderlich) Immer die Gruppen-ID für die Konfigurationsserver angeben

replica_set:
  name: "my-cfg" # Name des Replica Sets für den Konfigurationsserver (Präfix des fqdn)
  group: "my-cfg-servers" # Gruppenname für alle Server im Replica Set

Host-Definitions enthalten normalerweise Folgendes:

Nur Replica Set

cluster_role: "replicaSet"

Router-Server

cluster_role: "router"

Konfigurationsserver

cluster_role: "config"
replica_set:
  name: "my-cfg" # Name des Replica Sets für den Konfigurationsserver (Präfix des fqdn)
  group: "my-cfg-servers" # Gruppenname für alle Server im Replica Set

Shard-Server

cluster_role: "shard"
replica_set:
  name: "db-data" # Name des Replica Sets für den Shard-Server (Präfix des fqdn)
  group: "db-data-servers" # Gruppenname für alle Server im Replica Set

Tags/Flags

Ich verwende ein System von Flags und Tags, das dem aufrufenden Playbook ermöglicht, anzugeben, welche Rollen ausgeführt werden. Ein Beispiel:

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']}"

Flags und Variablen

Flag Zweck
install Installieren der Mongo-Pakete
save_config Grundlegende Initialisierung. Dienste stoppen, Dienst-/Konfigurationsdateien hochladen, Dienste neu starten
reset_storage Verzeichnisse und Protokolle löschen
init_replica_set Initialisieren der Replica Set-Konfiguration
add_shard_to_cluster Ein Replica Set eines Shard-Servers zum Cluster von Shard-Servern hinzufügen
create_database Eine erste Datenbank mit Benutzername und Passwort erstellen
vars:
  flags: ["install"]
  new_shard:
    name: # Name des Replica Sets, das zum Konfigurationsserver hinzugefügt werden soll
    server: # Einer der Mitglieder des neuen Replica Sets, die hinzugefügt werden sollen

Beispiele

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

    # Für die Initialisierung des Replica Sets
    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 .

Lizenz

MIT

Autoreninformationen

Isaac Kehle @isaackehle (twitter, github, linkedin)

Quellen

Über das Projekt

Configure the components of a MongoDB Cluster

Installieren
ansible-galaxy install pgkehle.mongodb
Lizenz
mit
Downloads
194
Besitzer