cli-tool
intermediate
utility
Consul
📋 Copy All Commands
📄 Generate PDF
Guía completa de comandos y flujos de trabajo de HashiCorp Consul para descubrimiento de servicios, gestión de configuración y malla de servicios.
Instalación y Configuración
Comando
Descripción
consul version
Mostrar versión de Consul
consul agent -dev
Iniciar agente de desarrollo
consul agent -config-dir=/etc/consul.d
Comenzar con la configuración
consul members
Listar miembros del clúster
consul info
Mostrar información del agente
## Gestión de Agentes
Operaciones Básicas de Agentes
Comando
Descripción
consul agent -server -bootstrap-expect=3
Iniciar agente de servidor
consul agent -client=0.0.0.0
Iniciar agente cliente
consul join 192.168.1.100
Unirse al cluster
consul leave
Salir del clúster de manera elegante
consul reload
Recargar configuración
### Configuración de Agentes
Comando
Descripción
---------
-------------
consul validate /etc/consul.d
Validar configuración
consul configtest
Configuración de prueba
## Descubrimiento de Servicios
Registro de Servicios
Comando
Descripción
consul services register service.json
Registrar servicio desde archivo
consul services deregister service-id
Dar de baja servicio
consul catalog services
Listar todos los servicios
consul catalog nodes
Listar todos los nodos
### Consultas de Servicios
Comando
Descripción
---------
-------------
consul catalog service web
Listar instancias de servicio
consul catalog service web -tag production
Filtrar por etiqueta
consul health service web
Estado de verificación de salud
consul health node node1
Estado de salud de Node
### Interfaz DNS
Comando
Descripción
---------
-------------
dig @127.0.0.1 -p 8600 web.service.consul
Servicio de consulta a través de DNS
dig @127.0.0.1 -p 8600 web.service.dc1.consul
Consultar centro de datos específico
dig @127.0.0.1 -p 8600 node1.node.consul
Consultar nodo a través de DNS
## Almacén de Clave-Valor
Operaciones de KV
Comando
Descripción
consul kv put config/database/url "postgresql://..."
Almacenar clave-valor
consul kv get config/database/url
Obtener valor
consul kv get -recurse config/
Obtener todas las claves bajo el prefijo
consul kv delete config/database/url
Tecla Supr
consul kv delete -recurse config/
Eliminar todas las claves bajo el prefijo
### Operaciones Avanzadas de KV
Comando
Descripción
---------
-------------
consul kv put -cas -modify-index=123 config/app/version "2.0"
Actualización condicional
consul kv get -detailed config/app/version
Obtener con metadata
consul kv export config/
Exportar claves
consul kv import @backup.json
Importar claves
## Verificaciones de Salud
Gestión de Verificaciones de Salud
Comando
Descripción
consul health checks
Enumerar todas las comprobaciones de salud
consul health checks web
Lista de comprobaciones para el servicio
consul health state critical
Lista de verificaciones críticas
consul health state passing
Lista de checks aprobados
## Listas de Control de Acceso (ACLs)
Gestión de ACLs
Comando
Descripción
consul acl bootstrap
Sistema ACL de Bootstrap
consul acl token create -description="Web service token"
Crear token
consul acl token list
Listar tokens
consul acl token delete TOKEN_ID
Eliminar token
### Políticas de ACL
Comando
Descripción
---------
-------------
consul acl policy create -name web-policy -rules @policy.hcl
Crear política
consul acl policy list
Listar políticas
consul acl policy read web-policy
Leer política
consul acl policy update -id POLICY_ID -rules @new-policy.hcl
Actualizar política
## Connect (Malla de Servicios)
Configuración de Connect
Comando
Descripción
consul connect ca get-config
Obtener configuración de CA
consul connect ca set-config -config-file ca.json
Configuración de CA
consul connect proxy -service web
Iniciar proxy de Connect
### Intenciones
Comando
Descripción
---------
-------------
consul intention create web db
Permitir web para conectar a db
consul intention create -deny web cache
Denegar caché web
consul intention list
Listar todas las intenciones
consul intention delete web db
Eliminar intención
## Entradas de Configuración
Configuración de Servicios
Comando
Descripción
consul config write service-defaults.hcl
Escribir valores predeterminados de servicio
consul config write proxy-defaults.hcl
Escribir valores predeterminados de proxy
consul config list -kind service-defaults
Configuraciones de lista
consul config read -kind service-defaults -name web
Leer configuración
consul config delete -kind service-defaults -name web
Eliminar configuración
## Instantáneas y Copias de Seguridad
Operaciones de Instantáneas
Comando
Descripción
consul snapshot save backup.snap
Crear snapshot
consul snapshot restore backup.snap
Restaurar snapshot
consul snapshot inspect backup.snap
Inspeccionar snapshot
## Monitoreo y Depuración
Comandos de Monitoreo
Comando
Descripción
consul monitor
Registros de stream
consul monitor -log-level=DEBUG
Registros de nivel de depuración
consul debug
Recopilar información de depuración
consul operator raft list-peers
Listar pares Raft
### Rendimiento
Comando
Descripción
---------
-------------
consul operator autopilot get-config
Obtener configuración de autopilot
consul operator autopilot set-config -cleanup-dead-servers=true
Configurar configuración de autopiloto
## Ejemplos de Configuración
Configuración de Servidor
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
\\\\ }
Configuración de Cliente
Would you like me to continue with the remaining 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"
\\}
\\}
### Definición de Servicio
```json
\\\\{
"service": \\\\{
"name": "web",
"port": 80,
"tags": ["production"],
"check": \\\\{
"http": "http://localhost:80/health",
"interval": "10s"
\\\\},
"connect": \\\\{
"sidecar_service": \\\\{\\\\}
\\\\}
\\\\}
\\\\}
Política de ACL
node_prefix "" \\\\ {
policy = "read"
\\\\ }
service_prefix "" \\\\ {
policy = "read"
\\\\ }
service "web" \\\\ {
policy = "write"
\\\\ }
key_prefix "config/web/" \\\\ {
policy = "write"
\\\\ }
session_prefix "" \\\\ {
policy = "read"
\\\\ }
Configuración de Service Mesh
Valores Predeterminados de Proxy
Kind = "proxy-defaults"
Name = "global"
Config \\\\ {
protocol = "http"
\\\\ }
MeshGateway \\\\ {
Mode = "local"
\\\\ }
Valores Predeterminados de Servicio
Kind = "service-defaults"
Name = "web"
Protocol = "http"
MeshGateway \\\\ {
Mode = "local"
\\\\ }
Expose \\\\ {
Checks = true
Paths = [
\\\\ {
Path = "/health"
LocalPathPort = 8080
ListenerPort = 21500
\\\\ }
]
\\\\ }
Configuración Multi-Datacenter
Federación WAN
Comando
Descripción
consul join -wan 192.168.2.10
Únete a WAN
consul members -wan
Listar miembros de WAN
consul catalog datacenters
Lista de datacenters
### Consultas Entre Datacenters
Comando
Descripción
consul catalog service web -datacenter dc2
Servicio de consulta en DC2
dig @127.0.0.1 -p 8600 web.service.dc2.consul
Consulta DNS a DC2
## Resolución de Problemas
Problemas Comunes
Comando
Descripción
consul operator raft list-peers
Verificar estado del clúster Raft
consul debug -duration=30s
Recopilar información de depuración
consul validate /etc/consul.d
Validar configuración
consul members -detailed
Información detallada de miembro
### Análisis de Logs
Comando
Descripción
consul monitor -log-level=TRACE
Registro de nivel de traza
journalctl -u consul -f
Seguir registros de systemd
## Mejores Prácticas
Seguridad