Vai al contenuto

Consul

Comandi e workflow completi di HashiCorp Consul per service discovery, gestione della configurazione e service mesh.

Installazione e Configurazione

Comando Descrizione
consul version Mostra versione Consul
consul agent -dev Avvia agente di sviluppo
consul agent -config-dir=/etc/consul.d Inizia con la configurazione
consul members Elenca i membri del cluster
consul info Mostra informazioni agente
## Gestione dell'Agente

Operazioni Base dell'Agente

Comando Descrizione
consul agent -server -bootstrap-expect=3 Avvia agent server
consul agent -client=0.0.0.0 Avvia agente client
consul join 192.168.1.100 Unisciti al cluster
consul leave Lasciare il cluster con eleganza
consul reload Ricarica configurazione
### Configurazione dell'Agente
Comando Descrizione
--------- -------------
consul validate /etc/consul.d Convalidare la configurazione
consul configtest Configurazione di test
## Service Discovery

Registrazione del Servizio

Comando Descrizione
consul services register service.json Registra servizio da file
consul services deregister service-id Deregistra servizio
consul catalog services Elenca tutti i servizi
consul catalog nodes Elenca tutti i nodi
### Query dei Servizi
Comando Descrizione
--------- -------------
consul catalog service web Elenca istanze di servizio
consul catalog service web -tag production Filtra per tag
consul health service web Stato del controllo sanitario
consul health node node1 Stato di salute del nodo
### Interfaccia DNS
Comando Descrizione
--------- -------------
dig @127.0.0.1 -p 8600 web.service.consul Servizio di query tramite DNS
dig @127.0.0.1 -p 8600 web.service.dc1.consul Query datacenter specifico
dig @127.0.0.1 -p 8600 node1.node.consul Query node via DNS
## Key-Value Store

Operazioni KV

Comando Descrizione
consul kv put config/database/url "postgresql://..." Memorizza chiave-valore
consul kv get config/database/url Recupera valore
consul kv get -recurse config/ Ottieni tutte le chiavi sotto il prefisso
consul kv delete config/database/url Tasto Canc
consul kv delete -recurse config/ Elimina tutte le chiavi sotto il prefisso
### Operazioni KV Avanzate
Comando Descrizione
--------- -------------
consul kv put -cas -modify-index=123 config/app/version "2.0" Aggiornamento condizionale
consul kv get -detailed config/app/version Ottieni con i metadati
consul kv export config/ Esporta chiavi
consul kv import @backup.json Importa chiavi
## Health Checks

Gestione degli Health Check

Comando Descrizione
consul health checks Elenca tutti i controlli sanitari
consul health checks web Elenco controlli per il servizio
consul health state critical Elencare controlli critici
consul health state passing Elenco dei controlli superati
## Liste di Controllo Accessi (ACL)

Gestione ACL

Comando Descrizione
consul acl bootstrap Sistema ACL di Bootstrap
consul acl token create -description="Web service token" Crea token
consul acl token list Elenca token
consul acl token delete TOKEN_ID Elimina token
### Policy ACL
Comando Descrizione
--------- -------------
consul acl policy create -name web-policy -rules @policy.hcl Crea policy
consul acl policy list Elenca policy
consul acl policy read web-policy Leggi policy
consul acl policy update -id POLICY_ID -rules @new-policy.hcl Aggiorna policy
## Connect (Service Mesh)

Configurazione Connect

Comando Descrizione
consul connect ca get-config Ottieni configurazione CA
consul connect ca set-config -config-file ca.json Configurazione CA
consul connect proxy -service web Avvia Connect proxy
### Intenzioni
Comando Descrizione
--------- -------------
consul intention create web db Consenti web di connettersi al db
consul intention create -deny web cache Negare il web alla cache
consul intention list Elenca tutti gli intenti
consul intention delete web db Elimina intenzione
## Voci di Configurazione

Configurazione del Servizio

Comando Descrizione
consul config write service-defaults.hcl Scrivi impostazioni predefinite del servizio
consul config write proxy-defaults.hcl Scrivi impostazioni predefinite proxy
consul config list -kind service-defaults Elenco configurazioni
consul config read -kind service-defaults -name web Leggi configurazione
consul config delete -kind service-defaults -name web Elimina configurazione
## Snapshot e Backup

Operazioni di Snapshot

Comando Descrizione
consul snapshot save backup.snap Crea snapshot
consul snapshot restore backup.snap Ripristina snapshot
consul snapshot inspect backup.snap Ispeziona snapshot
## Monitoraggio e Debug

Comandi di Monitoraggio

Comando Descrizione
consul monitor Log di stream
consul monitor -log-level=DEBUG Log di debug a livello
consul debug Raccogli informazioni di debug
consul operator raft list-peers Elenca peer Raft
### Prestazioni
Comando Descrizione
--------- -------------
consul operator autopilot get-config Ottieni configurazione autopilot
consul operator autopilot set-config -cleanup-dead-servers=true Imposta configurazione autopilot
## Esempi di Configurazione

Configurazione Server

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
\\\\}

Configurazione Client

Would you like me to continue with the remaining sections or translations?```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" \\} \\} **Abilita ACL**: Usa sempre ACL in produzionejson \\{ "service": \\{ "name": "web", "port": 80, "tags": ["production"], "check": \\{ "http": "http://localhost:80/health", "interval": "10s" \\}, "connect": \\{ "sidecar_service": \\{\\} \\} \\} \\} **Crittografia TLS**: Abilita TLS per tutte le comunicazionihcl node_prefix "" \\{ policy = "read" \\}

service_prefix "" \\{ policy = "read" \\}

service "web" \\{ policy = "write" \\}

key_prefix "config/web/" \\{ policy = "write" \\}

session_prefix "" \\{ policy = "read" \\} **Crittografia Gossip**: Usa la crittografia gossiphcl Kind = "proxy-defaults" Name = "global"

Config \\{ protocol = "http" \\}

MeshGateway \\{ Mode = "local" \\} **Segmentazione di Rete**: Sicurezza di rete appropriatahcl Kind = "service-defaults" Name = "web"

Protocol = "http"

MeshGateway \\{ Mode = "local" \\}

Expose \\{ Checks = true Paths = [ \\{ Path = "/health" LocalPathPort = 8080 ListenerPort = 21500 \\} ] \\} ```Gestione Token: Ruota i token regolarmente

Performance

Comando Descrizione
consul join -wan 192.168.2.10 Unisciti a WAN
consul members -wan Elenco dei membri WAN
consul catalog datacenters Elenca datacenter
Comando Descrizione
--------- -------------
consul catalog service web -datacenter dc2 Servizio di query in DC2
dig @127.0.0.1 -p 8600 web.service.dc2.consul Query DNS a DC2
Comando Descrizione
--------- -------------
consul operator raft list-peers Controlla lo stato del cluster Raft
consul debug -duration=30s Raccogli informazioni di debug
consul validate /etc/consul.d Convalidare la configurazione
consul members -detailed Informazioni dettagliate del membro
Comando Descrizione
--------- -------------
consul monitor -log-level=TRACE Trace level logging
journalctl -u consul -f Segui i log di systemd