Consul - Instalação

Para fins de demonstração, usaremos o agente cônsul no modo de desenvolvedor usando o modo -dev. Apenas para a configuração da máquina local, faremos uma configuração única do cônsul do sistema.Please do not use this single node consul cluster in your production. Como Hashicorp já menciona no caso de um cluster cônsul de nó único,the data loss is inevitable.

Instalando Consul

O Consul pode ser instalado através da página de Downloads em www.consul.io/downloads.html

Você pode extrair o pacote binário na seção Downloads de sua máquina.

$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/

Agora vamos começar a usar o cônsul usando o -dev flag.

$ consul agent -dev -data-dir=/tmp/consul

A saída seria conforme mostrado na imagem a seguir.

Agora você pode verificar os membros do cônsul usando o seguinte comando.

$ consul members

A saída seria conforme mostrado na imagem a seguir.

Se você quiser juntar outros nós a este nó -

$ consul join <Node 2> <Node 3>

Como alternativa, você pode executar o seguinte comando no Nó 2 e 3 -

$ consul join <Node 1>

Usando a linha de comando

A linha de comando do cônsul consiste em várias opções diferentes, algumas das mais comumente usadas são as seguintes -

  • agent - que dirige um agente Consul.

  • configtest - para validar um arquivo de configuração.

  • event - para iniciar um novo evento.

  • exec - para executar um comando em nós Consul.

  • force-leave - forçando um membro do cluster a deixar o cluster.

  • info - fornece informações de depuração para os operadores.

  • join - para fazer um agente Consul se juntar ao cluster.

  • keygen - para gerar uma nova chave de criptografia.

  • keyring - para gerenciar as chaves de criptografia da camada de fofoca.

  • kv - para interagir com o armazenamento de valor-chave.

  • leave - deixar o cluster Consul e desligá-lo sem força.

  • lock - para executar um comando para segurar uma fechadura.

  • maint - para controlar o modo de manutenção do nó ou serviço.

  • members - lista os membros de um cluster Consul.

  • monitor - ele transmite logs de um agente Consul.

  • operator - fornece-nos um conjunto de ferramentas para os operadores do Consul.

  • reload - aciona o agente para recarregar os arquivos de configuração.

  • rtt - estima o tempo de ida e volta da rede entre os nós.

  • snapshot - salva, restaura e inspeciona instantâneos do estado do servidor Consul.

  • version - para imprimir a versão atual do Consul.

  • watch - para estar atento a mudanças no cônsul.

Modelo Consul

O modelo do consul nos fornece um daemon que consulta a instância do Consul e atualiza qualquer número de modelos especificados no sistema de arquivos. O modelo cônsul pode, opcionalmente, executar comandos arbitrários quando o processo de atualização for concluído. Esta opção nos ajuda a configurar o cluster cônsul sem fazer tudo manualmente por conta própria.

O modelo de cônsul deve ser formado em /tmp/<name-of-file>.conf.tmpfl. O idioma no qual o modelo é escrito de acordo comHashicorp Configuration Language (HCL).

Você pode baixar o modelo do cônsul nesta página .

Experimente usando o seguinte comando -

$ ./consul-template -h

A saída seria conforme mostrado na imagem a seguir.

Se você deseja mover este binário para um espaço mais proeminente, de modo que esteja sempre disponível para o usuário. Você pode digitar os seguintes comandos -

$ chmod +x consul-template
$ sudo mv consul-template /usr/share/bin/

Para fins de demonstração, vamos usar um exemplo de configuração de nginxpara ser usado como nosso serviço. Você pode experimentar mais demos emhttps://github.com/hashicorp/consul-template/tree/master/examples ou melhor, escreva seu próprio modelo.

$ vim /tmp/nginx.conf.ctmpl

A saída seria conforme mostrado na imagem a seguir.

O arquivo de configuração pode ser semelhante 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}}
}

Agora, usando o arquivo binário do modelo consul, execute os seguintes comandos -

$ consul-template \
 -template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"

Com o comando anterior, o processo foi iniciado. Mais tarde, você pode abrir outro terminal e visualizar o arquivo nginx.conf sendo completamente renderizado usando o seguinte comando.

$ cat /etc/nginx/conf.d/default.conf

A saída seria conforme mostrado na imagem a seguir.