Instalando o Consul

Antes de mais nada, o Consul é uma baita ferramenta que pode tornar a vida do OPS e mesmo do DEV muito melhor. Sendo assim ela ajuda a lidar com complexidades da TI moderna de um jeito mais simples do que tratando proxies reversos na mão. Além disso há várias outras ferramentas análogas no mercado e o conceito de service discovery pode ser visto em ferramentas como Docker Swarm ou Kubernetes. Leia também Porque você já deveria estar usando Hashicorp Consul.

Instalando o Consul em si

Bem como outras plataformas da Hashicorp, o Consul também é construído em Go (Go Lang) e assim há apenas um executável e nada mais. Por isso, somente com esse executável todo o trabalho necessário pode ser feito, sem precisar de instalar várias dependências.

Logo após, para instalar basta baixar o executável e colocá-lo disponível para uso em qualquer local no sistema: Realmente é muito simples. Veja o código a seguir que auxilia nesse processo.

# Pasta onde será feito o download (verifique a versão atual)
mkdir /opt/consul
cd /opt/consul
wget https://releases.hashicorp.com/consul/1.14.1/consul_1.14.1_linux_amd64.zip

# Após baixado, deve-se deszipar
unzip consul_1.14.1_linux_amd64.zip

# Para facilitar o uso, criei um link simbólico em /usr/bin
ln -s /opt/consul/consul /usr/bin/consul

# Agora, verifique se está funcionando corretamente
cd /
consul -v

Testando o site

Após essa instalação simples deve-se subir a aplicação para que possa ser consumida. Ela possui uma cli (command line interface) que dá suporte ao comando consul agent, que expõe seu serviço. Note que esse artigo não fará uma instalação complexa com vários agentes. Note também que o comando a seguir possui um client com um IP: coloque um dos IPs que sua maquina utiliza.

mkdir /etc/consul.d
consul agent -ui -dev -config-dir=/etc/consul.d -data-dir=/var/consul/ -client=172.22.222.135
Tela que exibe os detalhes do comando "consul agent -ui -dev -config-dir=/etc/consul.d -data-dir=/var/consul/ -client=172.22.222.135"
Após rodar o comando os logs aparecerão na tela. As primeiras linhas exibem informações relevantes sobre o serviço.
Tela que exibe o site do HashiCorp Consul. Nela é possível ver o healthcheck indicando que um nodo está ok.
Tela que exibe o site do HashiCorp Consul. Nela é possível ver o healthcheck indicando que um nodo está ok.

Utilizando o KeyValueStore

Para exemplificar o uso do Consul considere que há uma chave chamada ‘anselme.blog.database’ configurada no Consul. É possível criar outras chaves dada a conveniência. O comando a seguir consome do kv (keyvalueStore) do Consul e obtém os dados dessa chave, com seu valor em BASE64. Considere que uma aplicação desenvolvida em qualquer linguagem poderia pegar de maneira semelhante:

$ curl https://172.22.222.135:8500/v1/kv/anselme.blog.database

[
    {
        "LockIndex": 0,
        "Key": "anselme.blog.database",
        "Flags": 0,
        "Value": "IlZhbG9yIGRhIGNoYXZlIERhdGFiYXNlIg==",
        "CreateIndex": 44,
        "ModifyIndex": 45
    }
] 


$ echo "IlZhbG9yIGRhIGNoYXZlIERhdGFiYXNlIg==" | base64 -d
"Valor da chave Database"

Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.

Deixe um comentário