cmndrsp0ck.galera-cluster

galera-cluster

Zweck

Dieses Repository hilft Ihnen, 2 HAProxy-Knoten mit schwebender IP-Zuweisung und einem MariaDB Galera-Cluster bereitzustellen und zu konfigurieren. Die Bereitstellung erfolgt über Terraform und die Konfiguration erfolgt mit Ansible.

Voraussetzungen

  • Sie müssen Terraform installieren, das zur Bereitstellung von Droplets verwendet wird.
  • Um Konfigurationsänderungen an den neu bereitgestellten Droplets anzuwenden, muss Ansible installiert sein.
  • Das Inventar von Ansible wird durch Terraform verwaltet, daher benötigen Sie terraform-inventory.
  • Wir benötigen einen DigitalOcean API-Schlüssel. Die Schritte zur Generierung eines DigitalOcean API-Keys finden Sie hier.
  • Verwenden Sie das beiliegende Skript gen_auth_key, um einen Authentifizierungsschlüssel für Ihren Lastenausgleichs-Cluster zu generieren.

Konfiguration

Terraform

terraform.tfvars

Die Beispieldatei terraform.tfvars.sample wurde bereitgestellt; denken Sie daran, die angehängte .sample zu entfernen. Sobald Sie alle Variablen festgelegt haben, sollte Terraform in der Lage sein, sich zu authentifizieren und Ihre Droplets bereitzustellen.

  • do_token - DigitalOcean API-Schlüssel mit Lese-/Schreibberechtigungen
  • project - Etwas, das es Ihnen erleichtert, verschiedene Infrastrukturegruppen voneinander zu unterscheiden.
  • region - Standort des Rechenzentrums.
  • image_slug - standardmäßig wird debian-9-x64 verwendet, da dies für bestimmte Ansible-Rollen vorgesehen ist.
  • keys - Ihre DigitalOcean SSH-Schlüssel-IDs. Über die API abrufbar.
  • private_key_path - Pfad zu Ihrer privaten Schlüsseldatei. Normalerweise in /home//.ssh/id_rsa
  • ssh_fingerprint - Ihr SSH-Schlüssel MD5-Fingerabdruck
  • public_key - Der Inhalt Ihres SSH-Öffentlichen Schlüssels
  • ansible_user - Der Benutzername, den Sie später zum Konfigurieren der Droplets mit Ansible verwenden möchten.

Ansible

Installieren Sie die Ansible-Rollen mit der requirements.yml-Datei.

$ ansible-galaxy install -r requirements.yml

Die Ansible-Rollen benötigen einige Variablen, die in group_vars/ mit sensiblen Daten festgelegt werden müssen. Bitte beziehen Sie sich auf die jeweiligen README.md-Dateien für Informationen zu den zu setzenden Variablen.

Kurze Anmerkung! Sie werden die Dateien mit Ansible Vault verschlüsseln. Anstatt jedes Mal Ihr Vault-Passwort einzugeben, wenn Sie Ihr Playbook ausführen, empfehle ich, Ihr Passwort in einer Datei außerhalb Ihres Repos zu speichern.

$ echo 'password' > ~/.vaultpass.txt

Stellen Sie sicher, dass Sie vault_password_file = ~/.vaultpass.txt in Ihrer ansible.cfg-Datei nicht auskommentiert lassen.

Okay, jetzt sollte alles eingerichtet sein und Sie sind bereit, Ihre Droplets bereitzustellen und zu konfigurieren.

Bereitstellung

Terraform

Wir beginnen mit Terraform. Stellen Sie sicher, dass Sie zum Stammverzeichnis des Repositories zurückkehren. Sie müssen terraform init ausführen, um die Terraform-Plugins wie die DigitalOcean- und Template-Provider herunterzuladen. Wenn alles eingerichtet ist, können Sie eine schnelle Überprüfung durchführen und einen Ausführungsplan erstellen, indem Sie terraform plan ausführen.

Verwenden Sie terraform apply, um die Droplets und die schwebende IP zu erstellen. Dies sollte je nach Anzahl der zu erstellenden Knoten etwa ein oder zwei Minuten dauern.

Ansible

Sobald Terraform abgeschlossen ist, können Sie die Netzwerkverbindung mit ansible all -i /usr/local/bin/terraform-inventory -m ping überprüfen. Dies sollte für alle Knoten pong zurückgeben.

Wir sind bereit, die Droplets zu konfigurieren. Führen Sie das Ansible-Playbook aus dem Stammverzeichnis des Repositories aus, um Ihre Droplets zu konfigurieren, indem Sie Folgendes ausführen:

ansible-playbook -i /usr/local/bin/terraform-inventory site.yml

Dieses Playbook installiert und konfiguriert Heartbeat, Ihren Dienst zur Zuweisung der schwebenden IP, installiert und konfiguriert HAProxy-Lastenausgleichsserver und Ihren MariaDB Galera-Cluster. Sie sollten eine stetige Ausgabe sehen, die die Rolle und den Schritt angibt, an dem Ansible gerade arbeitet. Wenn Fehler auftreten, können Sie diese leicht der richtigen Rolle und Aufgabe zurückverfolgen.

Lizenz

GPL-3.0

Autoreninformationen

cmndrsp0ck

Über das Projekt

Configures a MariaDB Galera Cluster

Installieren
ansible-galaxy install cmndrsp0ck.galera-cluster
GitHub Repository
Lizenz
gpl-3.0
Downloads
135
Besitzer