Cónsul - Instalación
Para fines de demostración, usaremos el agente de cónsul en el modo de desarrollador usando el modo -dev. Solo para la configuración de la máquina local, vamos a hacer una configuración de consulta del sistema única.Please do not use this single node consul cluster in your production. Como Hashicorp ya lo menciona en el caso de un clúster de cónsul de un solo nodo,the data loss is inevitable.
Instalación de Consul
Consul se puede instalar a través de la página de Descargas en www.consul.io/downloads.html
Puede extraer el paquete binario en la sección de Descargas de su máquina.
$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/
Ahora comencemos a usar cónsul usando el -dev flag.
$ consul agent -dev -data-dir=/tmp/consul
La salida sería como se muestra en la siguiente captura de pantalla.
Ahora puede verificar los miembros de su cónsul usando el siguiente comando.
$ consul members
La salida sería como se muestra en la siguiente captura de pantalla.
Si desea unir otros nodos a este nodo:
$ consul join <Node 2> <Node 3>
Alternativamente, puede ejecutar el siguiente comando en el Nodo 2 y 3 -
$ consul join <Node 1>
Usando la línea de comandos
La línea de comando de cónsul consta de varias opciones diferentes, algunas de las más utilizadas son las siguientes:
agent - que dirige un agente Cónsul.
configtest - para validar un archivo de configuración.
event - para iniciar un nuevo evento.
exec - para ejecutar un comando en los nodos Consul.
force-leave - Forzar a un miembro del clúster a abandonar el clúster.
info - nos proporciona la información de depuración para los operadores.
join - hacer que un agente Cónsul se una al clúster.
keygen - para generar una nueva clave de cifrado.
keyring - para administrar las claves de cifrado de la capa de chismes.
kv - para interactuar con el almacén de clave-valor.
leave - dejar el grupo Consul y apagarlo sin forzarlo.
lock - para ejecutar un comando para mantener presionado un candado.
maint - para controlar el modo de mantenimiento del nodo o del servicio.
members - enumera los miembros de un grupo de cónsul.
monitor - Transmite registros de un agente Cónsul.
operator - nos proporciona un conjunto de herramientas para los operadores de Consul.
reload : Hace que el agente vuelva a cargar los archivos de configuración.
rtt - Calcula el tiempo de ida y vuelta de la red entre nodos.
snapshot - guarda, restaura e inspecciona instantáneas del estado del servidor Consul.
version - para imprimir la versión actual de Consul.
watch - Vigilar cambios en el Cónsul.
Plantilla de cónsul
La plantilla de cónsul nos proporciona un demonio que consulta la instancia de Consul y actualiza cualquier número de plantillas especificadas en el sistema de archivos. La plantilla de cónsul puede ejecutar opcionalmente comandos arbitrarios cuando se completa el proceso de actualización. Esta opción nos ayuda a configurar el clúster de cónsul sin hacer todo manualmente por nuestra cuenta.
La plantilla de cónsul se formará en /tmp/<name-of-file>.conf.tmpfl. El idioma en el que está escrita la plantilla de acuerdo conHashicorp Configuration Language (HCL).
Puede descargar la plantilla de cónsul desde esta página .
Pruébelo usando el siguiente comando:
$ ./consul-template -h
La salida sería como se muestra en la siguiente captura de pantalla.
Si desea mover este binario a un espacio más destacado, para que esté disponible para el usuario en todo momento. Puede escribir los siguientes comandos:
$ chmod +x consul-template
$ sudo mv consul-template /usr/share/bin/
Para propósitos de demostración, usaremos una configuración de muestra de nginxpara ser utilizado como nuestro servicio. Puedes probar más demostraciones enhttps://github.com/hashicorp/consul-template/tree/master/examples o mejor escribe tu propia plantilla.
$ vim /tmp/nginx.conf.ctmpl
La salida sería como se muestra en la siguiente captura de pantalla.
El archivo de configuración puede verse así:
{{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}}
}
Ahora, utilizando el archivo binario de plantilla de cónsul, ejecute los siguientes comandos:
$ consul-template \
-template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
Con el comando anterior se ha iniciado el proceso. Más tarde, puede abrir otra terminal y ver el archivo nginx.conf que se representa por completo con el siguiente comando.
$ cat /etc/nginx/conf.d/default.conf
La salida sería como se muestra en la siguiente captura de pantalla.