cmndrsp0ck.galera-cluster

galera-cluster

Objectif

Ce dépôt vous aidera à déployer et configurer 2 nœuds HAProxy avec réattribution d'IP flottante et un cluster MariaDB Galera. Le provisionnement sera géré par Terraform et la configuration sera effectuée avec Ansible.

Prérequis

  • Vous devez installer Terraform qui sera utilisé pour gérer le provisionnement des Droplets.
  • Pour appliquer les modifications de configuration aux Droplets nouvellement provisionnés, vous devez installer Ansible.
  • L'inventaire d'Ansible sera géré par Terraform, donc vous aurez besoin de terraform-inventory.
  • Nous aurons besoin d'une clé API DigitalOcean. Les étapes pour générer une clé API DigitalOcean se trouvent ici.
  • Utilisez le script gen_auth_key inclus pour générer une clé d'authentification pour votre cluster de répartition de charge.

Configuration

Terraform

terraform.tfvars

Le fichier exemple terraform.tfvars.sample a été fourni, pensez simplement à supprimer le suffixe .sample. Une fois toutes vos variables définies, Terraform devrait pouvoir s'authentifier et déployer vos Droplets.

  • do_token - Clé API DigitalOcean avec des privilèges de lecture/écriture
  • project - Un nom qui vous permet de distinguer facilement différents groupes d'infrastructure.
  • region - Abréviation de la localisation du centre de données.
  • image_slug - debian-9-x64 est utilisé par défaut, car ce fichier a été écrit pour être utilisé avec des rôles Ansible spécifiques.
  • keys - Les identifiants de vos clés ssh DigitalOcean. Récupérables via l'API.
  • private_key_path - Chemin de votre fichier de clé privée. Normalement situé dans /home//.ssh/id_rsa
  • ssh_fingerprint - Empreinte MD5 de votre clé ssh
  • public_key - Le contenu de votre clé publique ssh
  • ansible_user - Nom d'utilisateur que vous souhaitez utiliser plus tard lors de la configuration des Droplets avec Ansible.

Ansible

Installez les rôles Ansible en utilisant le fichier requirements.yml.

$ ansible-galaxy install -r requirements.yml

Les rôles Ansible nécessitent que certaines variables soient définies avec des données sensibles dans group_vars/. Veuillez consulter leurs fichiers README.md respectifs pour obtenir des informations sur les variables à définir.

Remarque rapide ! Vous allez crypter les fichiers en utilisant ansible vault. Plutôt que de devoir saisir votre mot de passe de coffre à chaque fois que vous exécutez votre playbook, je vous recommande de définir votre mot de passe dans un fichier en dehors de votre dépôt.

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

Assurez-vous également de décommenter vault_password_file = ~/.vaultpass.txt dans votre fichier ansible.cfg.

D'accord, maintenant tout devrait être configuré et vous êtes prêt à commencer à provisionner et configurer vos Droplets.

Déploiement

Terraform

Commençons par utiliser Terraform. Assurez-vous de revenir au répertoire racine du dépôt. Vous devrez exécuter terraform init pour télécharger les plugins Terraform comme les fournisseurs digitalocean et template. Une fois que tout cela est configuré, vous pouvez effectuer un contrôle rapide et créer un plan d'exécution en exécutant terraform plan.

Utilisez terraform apply pour créer les Droplets et l'IP flottante. Cela devrait prendre environ une à deux minutes en fonction du nombre de nœuds que vous déployez.

Ansible

Une fois Terraform terminé, vous pouvez vérifier la connectivité réseau en utilisant ansible all -i /usr/local/bin/terraform-inventory -m ping. Cela devrait retourner pong pour tous les nœuds.

Nous sommes prêts à configurer les Droplets. Exécutez le playbook Ansible depuis le répertoire racine pour configurer vos Droplets en exécutant la commande suivante :

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

Ce playbook installera et configurera heartbeat, votre service de réattribution d'IP flottante, installera et configurera des équilibreurs de charge HAProxy, et votre cluster MariaDB Galera. Vous devriez voir une sortie continue qui indiquera le rôle et l'étape que Ansible est en train d'exécuter. Si des erreurs se produisent, vous pouvez facilement les retracer jusqu'au bon rôle et tâche.

Licence

GPL-3.0

Informations sur l'auteur

cmndrsp0ck

À propos du projet

Configures a MariaDB Galera Cluster

Installer
ansible-galaxy install cmndrsp0ck.galera-cluster
Licence
gpl-3.0
Téléchargements
135
Propriétaire