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
ansible-galaxy install cmndrsp0ck.galera-cluster