Console - Installazione
A scopo dimostrativo, utilizzeremo l'agente console in modalità sviluppatore utilizzando la modalità -dev. Solo per la configurazione della macchina locale, eseguiremo una singola configurazione della console di sistema.Please do not use this single node consul cluster in your production. Come Hashicorp lo menziona già nel caso di un cluster di console a nodo singolo,the data loss is inevitable.
Installazione di Console
Consul può essere installato tramite la pagina Download su www.consul.io/downloads.html
Puoi estrarre il pacchetto binario nella sezione Download della tua macchina.
$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/
Ora iniziamo a usare console usando il -dev flag.
$ consul agent -dev -data-dir=/tmp/consul
L'output sarebbe come mostrato nello screenshot seguente.
Ora puoi controllare i membri del tuo console utilizzando il seguente comando.
$ consul members
L'output sarebbe come mostrato nello screenshot seguente.
Se vuoi unire altri nodi a questo nodo -
$ consul join <Node 2> <Node 3>
In alternativa, puoi eseguire il seguente comando sui nodi 2 e 3:
$ consul join <Node 1>
Utilizzando la riga di comando
La riga di comando di console è composta da diverse opzioni, alcune delle più comunemente utilizzate sono le seguenti:
agent - che gestisce un agente Console.
configtest - per convalidare un file di configurazione.
event - per avviare un nuovo evento.
exec - per eseguire un comando sui nodi Console.
force-leave - costringendo un membro del cluster a lasciare il cluster.
info - ci fornisce le informazioni di debug per gli operatori.
join - per fare in modo che un agente Console si unisca al cluster.
keygen - per generare una nuova chiave di crittografia.
keyring - per gestire le chiavi di crittografia del livello di gossip.
kv - per interagire con l'archivio valori-chiave.
leave - di lasciare il Console cluster e spegnerlo senza forzare.
lock - per eseguire un comando per tenere premuto un lucchetto.
maint - per controllare il nodo o la modalità di manutenzione del servizio.
members - elenca i membri di un cluster Console.
monitor - trasmette i log da un agente Console.
operator - ci fornisce un cluster di strumenti per gli operatori Console.
reload - attiva l'agente per ricaricare i file di configurazione.
rtt - stima il tempo di andata e ritorno della rete tra i nodi.
snapshot - salva, ripristina e ispeziona le istantanee dello stato del server Consul.
version - per stampare la versione attuale di Console.
watch - Fare attenzione ai cambiamenti nel Console.
Modello di console
Il console-template ci fornisce un demone che interroga l'istanza di Consul e aggiorna un numero qualsiasi di modelli specificati sul file system. Il console-template può opzionalmente eseguire comandi arbitrari al termine del processo di aggiornamento. Questa opzione ci aiuta a configurare il cluster di console senza fare tutto manualmente da soli.
Il modello del console deve essere formato su /tmp/<name-of-file>.conf.tmpfl. La lingua in cui è scritto il modello secondoHashicorp Configuration Language (HCL).
Puoi scaricare il modello di console da questa pagina .
Provalo utilizzando il seguente comando:
$ ./consul-template -h
L'output sarebbe come mostrato nello screenshot seguente.
Se desideri spostare questo binario in uno spazio più prominente, in modo che sia disponibile per l'utente ogni volta. Puoi digitare i seguenti comandi:
$ chmod +x consul-template
$ sudo mv consul-template /usr/share/bin/
A scopo dimostrativo, utilizzeremo una configurazione di esempio di nginxda utilizzare come nostro servizio. Puoi provare altre demo suhttps://github.com/hashicorp/consul-template/tree/master/examples o meglio annotare il proprio modello.
$ vim /tmp/nginx.conf.ctmpl
L'output sarebbe come mostrato nello screenshot seguente.
Il file di configurazione potrebbe essere simile a:
{{range services}} {{$name := .Name}} {{$service := service .Name}}
upstream {{$name}} {
zone upstream-{{$name}} 64k;
{{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60
weight = 1;
{{else}}server 127.0.0.1:65535; # force a 502{{end}}
} {{end}}
server {
listen 80 default_server;
location / {
root /usr/share/nginx/html/;
index index.html;
}
location /stub_status {
stub_status;
}
{{range services}} {{$name := .Name}}
location /{{$name}} {
proxy_pass http://{{$name}};
}
{{end}}
}
Ora usando il file binario del modello di console, esegui i seguenti comandi:
$ consul-template \
-template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
Con il comando precedente il processo è iniziato. Successivamente è possibile aprire un altro terminale e visualizzare il file nginx.conf completamente renderizzato utilizzando il seguente comando.
$ cat /etc/nginx/conf.d/default.conf
L'output sarebbe come mostrato nello screenshot seguente.