Aide-mémoire complet des commandes et workflows HashiCorp Consul pour la découverte de services, la gestion de configuration et le service mesh.
Installation et Configuration
| Commande | Description |
|---|
consul version | Afficher la version de Consul |
consul agent -dev | Démarrer l’agent de développement |
consul agent -config-dir=/etc/consul.d | Commencez par la configuration |
consul members | Lister les membres du cluster |
consul info | Afficher les informations de l’agent |
Gestion de l’Agent
Opérations de Base de l’Agent
| Commande | Description |
|---|
consul agent -server -bootstrap-expect=3 | Démarrer l’agent serveur |
consul agent -client=0.0.0.0 | Démarrer l’agent client |
consul join 192.168.1.100 | Rejoindre le cluster |
consul leave | Quitter le cluster avec élégance |
consul reload | Recharger la configuration |
Configuration de l’Agent
| Commande | Description |
|---|
consul validate /etc/consul.d | Valider la configuration |
consul configtest | Configuration de test |
Découverte de Services
Enregistrement de Services
| Commande | Description |
|---|
consul services register service.json | Enregistrer le service à partir du fichier |
consul services deregister service-id | Désinscrire le service |
consul catalog services | Lister tous les services |
consul catalog nodes | Lister tous les nœuds |
Requêtes de Services
| Commande | Description |
|---|
consul catalog service web | Lister les instances de service |
consul catalog service web -tag production | Filtrer par tag |
consul health service web | Statut de vérification de santé |
consul health node node1 | État de santé du nœud |
Interface DNS
| Commande | Description |
|---|
dig @127.0.0.1 -p 8600 web.service.consul | Service de requête via DNS |
dig @127.0.0.1 -p 8600 web.service.dc1.consul | Requête de datacenter spécifique |
dig @127.0.0.1 -p 8600 node1.node.consul | Requête de nœud via DNS |
Magasin de Clés-Valeurs
Opérations KV
| Commande | Description |
|---|
consul kv put config/database/url "postgresql://..." | Stocker clé-valeur |
consul kv get config/database/url | Récupérer la valeur |
consul kv get -recurse config/ | Obtenir toutes les clés sous le préfixe |
consul kv delete config/database/url | Touche Suppr |
consul kv delete -recurse config/ | Supprimer toutes les clés sous le préfixe |
Opérations KV Avancées
| Commande | Description |
|---|
consul kv put -cas -modify-index=123 config/app/version "2.0" | Mise à jour conditionnelle |
consul kv get -detailed config/app/version | Récupérer avec les métadonnées |
consul kv export config/ | Exporter les clés |
consul kv import @backup.json | Importer des clés |
Vérifications de Santé
Gestion des Vérifications de Santé
| Commande | Description |
|---|
consul health checks | Lister tous les health checks |
consul health checks web | Liste des vérifications pour le service |
consul health state critical | Liste des vérifications critiques |
consul health state passing | Liste des vérifications passées |
Listes de Contrôle d’Accès (ACLs)
Gestion des ACLs
| Commande | Description |
|---|
consul acl bootstrap | Système ACL Bootstrap |
consul acl token create -description="Web service token" | Créer un token |
consul acl token list | Lister les tokens |
consul acl token delete TOKEN_ID | Supprimer le token |
Politiques ACL
| Commande | Description |
|---|
consul acl policy create -name web-policy -rules @policy.hcl | Créer une politique |
consul acl policy list | Lister les politiques |
consul acl policy read web-policy | Lire la politique |
consul acl policy update -id POLICY_ID -rules @new-policy.hcl | Mettre à jour la politique |
Connect (Service Mesh)
Configuration Connect
| Commande | Description |
|---|
consul connect ca get-config | Obtenir la configuration CA |
consul connect ca set-config -config-file ca.json | Configurer la configuration CA |
consul connect proxy -service web | Démarrer Connect proxy |
Intentions
| Commande | Description |
|---|
consul intention create web db | Autoriser le web à se connecter à la base de données |
consul intention create -deny web cache | Refuser le web au cache |
consul intention list | Lister toutes les intentions |
consul intention delete web db | Supprimer l’intention |
Entrées de Configuration
Configuration de Service
| Commande | Description |
|---|
consul config write service-defaults.hcl | Écrire les valeurs par défaut du service |
consul config write proxy-defaults.hcl | Écrire les valeurs par défaut du proxy |
consul config list -kind service-defaults | Liste des configurations |
consul config read -kind service-defaults -name web | Lire la configuration |
consul config delete -kind service-defaults -name web | Supprimer la configuration |
Instantanés et Sauvegardes
Opérations d’Instantanés
| Commande | Description |
|---|
consul snapshot save backup.snap | Créer un instantané |
consul snapshot restore backup.snap | Restaurer l’instantané |
consul snapshot inspect backup.snap | Inspecter le snapshot |
Surveillance et Débogage
Commandes de Surveillance
| Commande | Description |
|---|
consul monitor | Journaux de stream |
consul monitor -log-level=DEBUG | Journaux de niveau de débogage |
consul debug | Collecter les informations de débogage |
consul operator raft list-peers | Lister les pairs Raft |
| Commande | Description |
|---|
consul operator autopilot get-config | Obtenir la configuration d’autopilot |
consul operator autopilot set-config -cleanup-dead-servers=true | Définir la configuration du pilote automatique |
Exemples de Configuration
Configuration Serveur
datacenter = "dc1"
data_dir = "/opt/consul"
log_level = "INFO"
node_name = "consul-server-1"
server = true
bootstrap_expect = 3
retry_join = ["10.0.1.10", "10.0.1.11"]
bind_addr = "10.0.1.10"
client_addr = "0.0.0.0"
ui_config \\\\{
enabled = true
\\\\}
connect \\\\{
enabled = true
\\\\}
acl = \\\\{
enabled = true
default_policy = "deny"
enable_token_persistence = true
\\\\}
Configuration Client
Would you like me to continue with the remaining sections or provide more specific translations for the numbered sections?```hcl
datacenter = “dc1”
data_dir = “/opt/consul”
log_level = “INFO”
node_name = “consul-client-1”
retry_join = [“10.0.1.10”, “10.0.1.11”, “10.0.1.12”]
bind_addr = “10.0.1.20”
client_addr = “127.0.0.1”
services \\{
name = “web”
port = 80
tags = [“production”, “v1.0”]
check \\{
http = “http://localhost:80/health”
interval = ”10s”
\\}
\\}
### Définition du Service
```json
\\\\{
"service": \\\\{
"name": "web",
"port": 80,
"tags": ["production"],
"check": \\\\{
"http": "http://localhost:80/health",
"interval": "10s"
\\\\},
"connect": \\\\{
"sidecar_service": \\\\{\\\\}
\\\\}
\\\\}
\\\\}
Politique ACL
node_prefix "" \\\\{
policy = "read"
\\\\}
service_prefix "" \\\\{
policy = "read"
\\\\}
service "web" \\\\{
policy = "write"
\\\\}
key_prefix "config/web/" \\\\{
policy = "write"
\\\\}
session_prefix "" \\\\{
policy = "read"
\\\\}
Configuration du Service Mesh
Paramètres par Défaut du Proxy
Kind = "proxy-defaults"
Name = "global"
Config \\\\{
protocol = "http"
\\\\}
MeshGateway \\\\{
Mode = "local"
\\\\}
Paramètres par Défaut du Service
Kind = "service-defaults"
Name = "web"
Protocol = "http"
MeshGateway \\\\{
Mode = "local"
\\\\}
Expose \\\\{
Checks = true
Paths = [
\\\\{
Path = "/health"
LocalPathPort = 8080
ListenerPort = 21500
\\\\}
]
\\\\}
Configuration Multi-Datacenter
Fédération WAN
| Commande | Description |
|---|
consul join -wan 192.168.2.10 | Rejoindre WAN |
consul members -wan | Liste des membres WAN |
consul catalog datacenters | Liste des datacenters |
Requêtes Inter-DC
| Commande | Description |
|---|
consul catalog service web -datacenter dc2 | Service de requête dans DC2 |
dig @127.0.0.1 -p 8600 web.service.dc2.consul | Requête DNS vers DC2 |
Dépannage
Problèmes Courants
| Commande | Description |
|---|
consul operator raft list-peers | Vérifier l’état du cluster Raft |
consul debug -duration=30s | Collecter les informations de débogage |
consul validate /etc/consul.d | Valider la configuration |
consul members -detailed | Informations détaillées sur le membre |
Analyse des Logs
| Commande | Description |
|---|
consul monitor -log-level=TRACE | Trace level logging |
journalctl -u consul -f | Suivre les logs systemd |
Meilleures Pratiques
Sécurité