cmndrsp0ck.galera-cluster

galera-cluster

Cel

Ten repo pomoże Ci w wdrożeniu i skonfigurowaniu 2 węzłów HAProxy z przypisaniem pływającego adresu IP oraz klastra MariaDB Galera. Provisioning będzie obsługiwany przez Terraform, a konfiguracja będzie realizowana z użyciem Ansible.

Wymagania wstępne

  • Musisz zainstalować Terraform, który posłuży do provisioningu Dropletów.
  • Aby zastosować zmiany konfiguracyjne na nowo utworzonych Dropletach, potrzebujesz zainstalować Ansible.
  • Zarządzanie inwentarzem Ansible będzie realizowane przez Terraform, więc potrzebujesz terraform-inventory.
  • Będziemy potrzebować klucza API DigitalOcean. Kroki do wygenerowania klucza API DigitalOcean znajdziesz tutaj.
  • Użyj dołączonego skryptu gen_auth_key, aby wygenerować klucz autoryzacji dla swojego klastra równoważącego obciążenie.

Konfiguracja

Terraform

terraform.tfvars

Przykładowy plik terraform.tfvars.sample został dostarczony, pamiętaj jednak, aby usunąć dodatek .sample. Gdy ustawisz wszystkie zmienne, Terraform powinien być w stanie uwierzytelnić się i wdrożyć Twoje Droplety.

  • do_token - klucz API DigitalOcean z uprawnieniami do odczytu/zapisu
  • project - coś, co łatwo pozwala odróżniać różne grupy infrastruktury od siebie.
  • region - lokalizacja centrum danych.
  • image_slug - domyślnie używany jest debian-9-x64, ponieważ został napisany w celu wykorzystania z określonymi rolami Ansible.
  • keys - Identyfikatory kluczy ssh DigitalOcean. Można je uzyskać za pomocą API.
  • private_key_path - ścieżka do pliku klucza prywatnego. Zazwyczaj w /home/<nazwa_użytkownika>/.ssh/id_rsa
  • ssh_fingerprint - Twój klucz MD5 odcisk palca.
  • public_key - Zawartość Twojego publicznego klucza ssh.
  • ansible_user - Nazwa użytkownika, którą chcesz użyć później przy konfiguracji Dropletów z Ansible.

Ansible

Zainstaluj role Ansible używając pliku requirements.yml.

$ ansible-galaxy install -r requirements.yml

Role Ansible wymagają ustawienia niektórych zmiennych z wrażliwymi danymi w group_vars/. Proszę zapoznać się z ich odpowiednimi plikami README.md, aby dowiedzieć się, jakie zmienne ustawić.

Mała uwaga! Będziesz szyfrować pliki używając ansible vault. Zamiast za każdym razem wpisywać hasło do swojego vaulta, polecam utworzenie pliku z hasłem poza swoim repozytorium.

$ echo 'hasło' > ~/.vaultpass.txt

I upewnij się, że odkomentowałeś vault_password_file = ~/.vaultpass.txt w pliku ansible.cfg.

Dobrze, teraz wszystko powinno być gotowe, a Ty możesz zacząć provisioning i konfigurację swoich Dropletów.

Wdrożenie

Terraform

Zaczniemy od użycia Terraform. Upewnij się, że wróciłeś do głównego katalogu repozytorium. Musisz uruchomić terraform init, aby pobrać wtyczki terraform, takie jak dostawcy digitalocean i template. Gdy to wszystko będzie zainstalowane, możesz szybko sprawdzić i utworzyć plan wykonania, uruchamiając terraform plan.

Użyj terraform apply, aby zbudować Droplety i pływający adres IP. Powinno to zająć około jednej lub dwóch minut, w zależności od liczby uruchamianych węzłów.

Ansible

Gdy terraform zakończy działanie, możesz sprawdzić łączność sieciową, używając ansible all -i /usr/local/bin/terraform-inventory -m ping. To powinno zwrócić pong dla wszystkich węzłów.

Jesteśmy gotowi, aby rozpocząć konfigurację Dropletów. Wykonaj playbook Ansible z głównego katalogu repozytorium, aby skonfigurować swoje Droplety, uruchamiając następujące polecenie:

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

Ten playbook zainstaluje i skonfiguruje heartbeat, usługę przypisania pływającego adresu IP, zainstaluje i skonfiguruje równoważniki obciążenia HAProxy oraz klaster MariaDB Galera. Powinieneś zobaczyć stały wynik, który wskaże rolę i krok, w którym obecnie działa Ansible. Jeśli pojawią się jakiekolwiek błędy, łatwo możesz je zlokalizować w odpowiedniej roli i zadaniu.

Licencja

GPL-3.0

Informacje o autorze

cmndrsp0ck

O projekcie

Configures a MariaDB Galera Cluster

Zainstaluj
ansible-galaxy install cmndrsp0ck.galera-cluster
Licencja
gpl-3.0
Pobrania
135
Właściciel