Consul est un logiciel de Service Discovery et de clé-valeur. Il propose une API REST pour accéder aux informations et dispose d’un serveur DNS pour résoudre le nom des services.
La partie service permet à des programmes de s’enregistrer comme étant capable de délivrer un service. Il suffit de faire une requête DNS sur ce nom pour connaître les adresses IP correspondantes au service demandé. Il peut aussi réaliser des health check pour vérifier qu’un service continue de répondre correctement.
L’installation de Consul se fait simplement à l’aide du téléchargement d’un fichier binaire. Le démarrage du service peut se faire via l’utilisation d’un service systemd :
[Unit]
Description=Consul
After=network.target
[Service]
ExecStart=/usr/bin/consul agent -server -bootstrap -client=0.0.0.0 -ui -data-dir=/var/lib/consul -advertise=10.42.1.11
[Install]
WantedBy=multi-user.target
Note : le flag -bootstrap ne doit être utilisé que par un seul serveur par datacenter. Ce mode permet à Consul de s’élire lui-même quand il y a qu’un noeud. Les autres noeuds consul peuvent utiliser le flag -retry-join (ou -join dans le cas où on est sûr que le serveur est déjà démarré).