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
MongoDB
- Sicherheitsversteifung
- X509
- Shard-Cluster bereitstellen
- Shards zum Cluster hinzufügen
- Autorisierung
- Interne Authentifizierung
- Mitgliederzertifikate konfigurieren
- Zugriffskontrolle für Schlüsseldateien erzwingen
- Replica Set mit Zugriffskontrolle für Schlüsseldateien bereitstellen
- db.createUser()
- MongoDB mit x509 sichern
Digital Ocean