Consul est une solution de maillage de services offrant un plan de contrôle complet, comprenant des fonctionnalités de segmentation, de configuration et de découverte de services. Ces fonctionnalités peuvent être utilisées individuellement selon les besoins, ou elles peuvent être utilisées ensemble pour créer un maillage à service complet. Consul fonctionne sur un plan de données et prend en charge à la fois un proxy et un modèle d'intégration natif. Consul est livré avec un simple proxy intégré qui garantit que tout fonctionne immédiatement. Consul prend également en charge les intégrations de proxy tiers, telles qu'Envoy.
Les principales fonctionnalités de Consul incluent :
- Découverte de services
- Vérification de l'état
- Magasin KV
- Communication de service sécurisée
- Capacités multi-centres de données
Dans ce tutoriel, nous allons vous montrer comment installer un serveur Consul sur Ubuntu 20.04.
Prérequis
- Un nouveau VPS Ubuntu 20.04 sur la plate-forme cloud Atlantic.Net
- Un mot de passe root est configuré sur votre serveur
Étape 1 – Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 20.04 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur Ubuntu 20.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 – Installer le serveur Consul
Tout d'abord, installez les packages requis avec la commande suivante :
apt-get install unzip gnupg2 curl wget -y
Ensuite, téléchargez la dernière version de Consul avec la commande suivante :
wget https://releases.hashicorp.com/consul/1.8.4/consul_1.8.4_linux_amd64.zip
Une fois le téléchargement terminé, décompressez le fichier téléchargé avec la commande suivante :
unzip consul_1.8.4_linux_amd64.zip
Ensuite, déplacez le fichier binaire consul dans le répertoire /usr/local/bin avec la commande suivante :
mv consul /usr/local/bin/
Ensuite, vérifiez la version Consul à l'aide de la commande suivante :
consul --version
Vous devriez obtenir le résultat suivant :
Consul v1.8.4 Revision 12b16df32 Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
Étape 3 - Créer un fichier de service consul
Tout d'abord, vous devrez créer un utilisateur et un groupe distincts pour Consul. Vous pouvez les créer avec la commande suivante :
groupadd --system consul useradd -s /sbin/nologin --system -g consul consul
Ensuite, créez les répertoires requis avec la commande suivante :
mkdir -p /var/lib/consul mkdir /etc/consul.d
Ensuite, modifiez la propriété et l'autorisation de ces répertoires :
chown -R consul:consul /var/lib/consul chmod -R 775 /var/lib/consul chown -R consul:consul /etc/consul.d
Ensuite, créez un fichier de service Consul systemd avec la commande suivante :
nano /etc/systemd/system/consul.service
Ajoutez les lignes suivantes :
[Unit] Description=Consul Service Discovery Agent After=network-online.target Wants=network-online.target [Service] Type=simple User=consul Group=consul ExecStart=/usr/local/bin/consul agent -server -ui \ -advertise=your-server-ip \ -bind=your-server-ip \ -data-dir=/var/lib/consul \ -node=consul-01 \ -config-dir=/etc/consul.d ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT TimeoutStopSec=5 Restart=on-failure SyslogIdentifier=consul [Install] WantedBy=multi-user.target
Enregistrez et fermez le fichier lorsque vous avez terminé.
Remarque :fournissez l'adresse IP du serveur, le chemin d'accès au répertoire de données et le répertoire de configuration appropriés que vous avez créés précédemment.
Ensuite, rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Étape 4 – Configurer le serveur Consul
Tout d'abord, vous devrez générer une clé de la longueur et de l'encodage nécessaires. Vous pouvez le générer avec la commande suivante :
consul keygen
Vous devriez obtenir le résultat suivant :
TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=
Ensuite, vous devrez créer un fichier de configuration Json pour Consul. Vous pouvez le créer avec la commande suivante :
nano /etc/consul.d/config.json
Fournissez l'IP, le nom d'hôte et la clé Consul de votre serveur comme indiqué ci-dessous :
{ "bootstrap": true, "server": true, "log_level": "DEBUG", "enable_syslog": true, "datacenter": "server1", "addresses" : { "http": "0.0.0.0" }, "bind_addr": "your-server-ip", "node_name": "ubuntu2004", "data_dir": "/var/lib/consul", "acl_datacenter": "server1", "acl_default_policy": "allow", "encrypt": "TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=" }
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, démarrez le service Consul et activez-le au redémarrage du système avec la commande suivante :
systemctl start consul systemctl enable consul
Ensuite, vérifiez le statut du Consul avec la commande suivante :
systemctl status consul
Vous devriez obtenir le résultat suivant :
● consul.service - Consul Service Discovery Agent Loaded: loaded (/etc/systemd/system/consul.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 10:35:52 UTC; 4min 11s ago Main PID: 5511 (consul) Tasks: 9 (limit: 2353) Memory: 17.4M CGroup: /system.slice/consul.service └─5511 /usr/local/bin/consul agent -server -ui -advertise=your-server-ip -bind=your-server-ip -data-dir=/var/lib/consul -node=con>
À ce stade, le serveur Consul est démarré et écoute sur le port 8500. Vous pouvez le vérifier avec la commande suivante :
ss -plunt | grep 8500
Vous devriez obtenir le résultat suivant :
tcp LISTEN 0 4096 *:8500 *:* users:(("consul",pid=5511,fd=17))
Étape 5 - Configurer Nginx en tant que proxy inverse
Ensuite, c'est une bonne idée d'installer et de configurer Nginx en tant que proxy inverse pour accéder au Consul sur le port 80.
Tout d'abord, installez le serveur Nginx avec la commande suivante :
apt-get install nginx -y
Une fois installé, supprimez le fichier de configuration de l'hôte virtuel par défaut de Nginx :
rm -rf /etc/nginx/sites-enabled/default
Ensuite, créez un fichier de configuration d'hôte virtuel Consul avec la commande suivante :
nano /etc/nginx/sites-available/consul.conf
Ajoutez les lignes suivantes :
server { listen 80 ; server_name your-server-ip; root /var/lib/consul; location / { proxy_pass http://127.0.0.1:8500; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } }
Enregistrez et fermez le fichier, puis activez l'hôte virtuel avec la commande suivante :
ln -s /etc/nginx/sites-available/consul.conf /etc/nginx/sites-enabled/
Ensuite, vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :
nginx -t
Vous devriez obtenir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Ensuite, redémarrez le service Nginx avec la commande suivante :
systemctl restart nginx
Si vous obtenez des erreurs, vous devrez modifier le fichier de configuration du serveur par défaut Nginx et définir server_names_hash_bucket_size :
nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante sous http :
server_names_hash_bucket_size 64;
Enregistrez et fermez le fichier, puis redémarrez le service Nginx pour appliquer les modifications :
systemctl restart nginx
Étape 6 - Accéder au tableau de bord du consul
Ensuite, ouvrez votre navigateur Web et accédez à l'interface Web Consul en utilisant l'URL http://your-server-ip/ui . Vous devriez voir le tableau de bord Consul sur la page suivante :
Cliquez sur les nœuds pour répertorier les nœuds actifs de votre serveur comme indiqué ci-dessous :
Conclusion
Toutes nos félicitations! Vous avez installé avec succès le serveur Consul sur Ubuntu 20.04. Vous pouvez maintenant ajouter plus de nœuds clients au serveur Consul et commencer à les gérer à partir du tableau de bord Consul. Pour plus d'informations, vous pouvez consulter la documentation Consul. Commencez avec Consul sur l'hébergement VPS d'Atlantic.Net !