Aller au contenu

Consul

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

CommandeDescription
consul versionAfficher la version de Consul
consul agent -devDémarrer l’agent de développement
consul agent -config-dir=/etc/consul.dCommencez par la configuration
consul membersLister les membres du cluster
consul infoAfficher les informations de l’agent

Gestion de l’Agent

Opérations de Base de l’Agent

CommandeDescription
consul agent -server -bootstrap-expect=3Démarrer l’agent serveur
consul agent -client=0.0.0.0Démarrer l’agent client
consul join 192.168.1.100Rejoindre le cluster
consul leaveQuitter le cluster avec élégance
consul reloadRecharger la configuration

Configuration de l’Agent

CommandeDescription
consul validate /etc/consul.dValider la configuration
consul configtestConfiguration de test

Découverte de Services

Enregistrement de Services

CommandeDescription
consul services register service.jsonEnregistrer le service à partir du fichier
consul services deregister service-idDésinscrire le service
consul catalog servicesLister tous les services
consul catalog nodesLister tous les nœuds

Requêtes de Services

CommandeDescription
consul catalog service webLister les instances de service
consul catalog service web -tag productionFiltrer par tag
consul health service webStatut de vérification de santé
consul health node node1État de santé du nœud

Interface DNS

CommandeDescription
dig @127.0.0.1 -p 8600 web.service.consulService de requête via DNS
dig @127.0.0.1 -p 8600 web.service.dc1.consulRequête de datacenter spécifique
dig @127.0.0.1 -p 8600 node1.node.consulRequête de nœud via DNS

Magasin de Clés-Valeurs

Opérations KV

CommandeDescription
consul kv put config/database/url "postgresql://..."Stocker clé-valeur
consul kv get config/database/urlRécupérer la valeur
consul kv get -recurse config/Obtenir toutes les clés sous le préfixe
consul kv delete config/database/urlTouche Suppr
consul kv delete -recurse config/Supprimer toutes les clés sous le préfixe

Opérations KV Avancées

CommandeDescription
consul kv put -cas -modify-index=123 config/app/version "2.0"Mise à jour conditionnelle
consul kv get -detailed config/app/versionRécupérer avec les métadonnées
consul kv export config/Exporter les clés
consul kv import @backup.jsonImporter des clés

Vérifications de Santé

Gestion des Vérifications de Santé

CommandeDescription
consul health checksLister tous les health checks
consul health checks webListe des vérifications pour le service
consul health state criticalListe des vérifications critiques
consul health state passingListe des vérifications passées

Listes de Contrôle d’Accès (ACLs)

Gestion des ACLs

CommandeDescription
consul acl bootstrapSystème ACL Bootstrap
consul acl token create -description="Web service token"Créer un token
consul acl token listLister les tokens
consul acl token delete TOKEN_IDSupprimer le token

Politiques ACL

CommandeDescription
consul acl policy create -name web-policy -rules @policy.hclCréer une politique
consul acl policy listLister les politiques
consul acl policy read web-policyLire la politique
consul acl policy update -id POLICY_ID -rules @new-policy.hclMettre à jour la politique

Connect (Service Mesh)

Configuration Connect

CommandeDescription
consul connect ca get-configObtenir la configuration CA
consul connect ca set-config -config-file ca.jsonConfigurer la configuration CA
consul connect proxy -service webDémarrer Connect proxy

Intentions

CommandeDescription
consul intention create web dbAutoriser le web à se connecter à la base de données
consul intention create -deny web cacheRefuser le web au cache
consul intention listLister toutes les intentions
consul intention delete web dbSupprimer l’intention

Entrées de Configuration

Configuration de Service

CommandeDescription
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-defaultsListe des configurations
consul config read -kind service-defaults -name webLire la configuration
consul config delete -kind service-defaults -name webSupprimer la configuration

Instantanés et Sauvegardes

Opérations d’Instantanés

CommandeDescription
consul snapshot save backup.snapCréer un instantané
consul snapshot restore backup.snapRestaurer l’instantané
consul snapshot inspect backup.snapInspecter le snapshot

Surveillance et Débogage

Commandes de Surveillance

CommandeDescription
consul monitorJournaux de stream
consul monitor -log-level=DEBUGJournaux de niveau de débogage
consul debugCollecter les informations de débogage
consul operator raft list-peersLister les pairs Raft

Performance

CommandeDescription
consul operator autopilot get-configObtenir la configuration d’autopilot
consul operator autopilot set-config -cleanup-dead-servers=trueDé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

CommandeDescription
consul join -wan 192.168.2.10Rejoindre WAN
consul members -wanListe des membres WAN
consul catalog datacentersListe des datacenters

Requêtes Inter-DC

CommandeDescription
consul catalog service web -datacenter dc2Service de requête dans DC2
dig @127.0.0.1 -p 8600 web.service.dc2.consulRequête DNS vers DC2

Dépannage

Problèmes Courants

CommandeDescription
consul operator raft list-peersVérifier l’état du cluster Raft
consul debug -duration=30sCollecter les informations de débogage
consul validate /etc/consul.dValider la configuration
consul members -detailedInformations détaillées sur le membre

Analyse des Logs

CommandeDescription
consul monitor -log-level=TRACETrace level logging
journalctl -u consul -fSuivre les logs systemd

Meilleures Pratiques

Sécurité