Introduction
Consul est un outil développé par HashiCorp pour gérer des services réseaux dynamiques. On pourrait résumer l'outil à un serveur DNS dynamique.
Tests
Objectifs
Comprendre comment fonctionne Consul pour savoir dans quel mesure je peux l'utiliser pour déployer des servies accessibles depuis plusieurs sites.
Matériel
Pur étudier Consul, j'utilise ce que j'ai sous a main. - 1 PI3 avec Raspbian (raspbian) - 1 PC qui me sert de NAS (CentOS7) - 1 PC qui me sert de serveur de Virtualisation (CentOS 8) - 1 Portable (Archlinux)
Installations
J'ai pour habitude de préférer les installations de logiciels présents dans les distributions ou procéder à l'installation depuis les sources. Ici, les différents OS que j'utilise n'ont pas la même version de consul et je ne souhaite pas mettre en place un chaîne de compilation Goland. Aussi j'ai choisi la solution container.
Sur les CentOS, il faut utiliser podman à la place de docker.
# Podman podman pull docker.io/library/consul # docker docker pull consul
# all useradd -s /sbin/nologin -r -u 100 -g 100 -M -c 'Consul server' -d /var/lib/consul consul mkdir -p /var/lib/consul/{config,data} echo '{"skip_leave_on_interrupt": true, "enable_local_script_checks": true}' > /var/lib/consul/config/local.json chmod -R 700 /var/lib/consul chown -R consul:consul /var/lib/consul # CentOS avec selinux chcon -R system_u:object_r:container_file_t:s0 /var/lib/consul/{config,data}
# COnfiguration fw
Exécution
Étant en phase de découverte, j'utilise l'option -dev de consul. Cette option active plusieurs fonctionnalités peu sécurisées, comme par exemple l'utilisation d'un CA autonome. Il ne faut pas utiliser cette option et production.
Par ce qu'il faut commencer par une machine, j'en choisi une qui sera la première :
podman run --rm -d --net=host --name=dev-consul \
-v /var/lib/consul/data:/consul/data \
-v /var/lib/consul/config:/consul/config \
docker.io/library/consul agent -server -bind=
Sur les autres machines, il faut simplement lancer la même commande en ajoutant l'option
-join @IP_PREMIERE_MACHINE
Quand on a des dns locaux, il est aussi possible d'ajouter plusieurs fois l'option -recursor @ip_DNS.
tips: récupérer ceux de la machne courante.