Skip to content

Instantly share code, notes, and snippets.

@wesleywillians
Last active August 22, 2019 14:54
Show Gist options
  • Save wesleywillians/d0b3434527352eb1f50596ed7bf39d63 to your computer and use it in GitHub Desktop.
Save wesleywillians/d0b3434527352eb1f50596ed7bf39d63 to your computer and use it in GitHub Desktop.

Statr Consul Server

consul agent -server -ui -bootstrap-expect 1 -data-dir=/var/consul.d -config-dir=/etc/consul.d -node=consul-master -client=0.0.0.0

Start Consul agent

consul agent -data-dir=/var/consul.d -config-dir=/etc/consul.d -node=consul-client1

dig

dig @localhost -p 8600 webserver.service.consul SRV

Json - Consul Service

{ "service": { "name": "webserver", "tags": ["testserver"], "port":80 } }

{ "service": { "name": "webserver", "tags": [ "testserver" ], "port": 80, "check": { "id": "api", "name": "HTTP API", "http": "http://localhost", "method": "GET", "interval": "10s", "timeout": "1s" } } }

Nginx Config

resolver localhost:8600; set $webserver

proxy_pass $webserver

Api URL

curl http://localhost:8500/v1/catalog/service/webserver?pretty

dig

dig @localhost -p 8600 webserver.service.consul SRV

KV

consul kv put mysql/config/user root consul kv put mysql/config/password root consul kv put mysql/config/dbname laravel

consul kv get mysql/config/dbname

curl localhost:8500/v1/kv/mysql/config/user curl localhost:8500/v1/kv/mysql/config/user?raw=true

version: '3'
services:
consul_master:
build: .
container_name: consul-master
restart: always
tty: true
ports:
- "8000:80"
networks:
- app-network
consul_client1:
build: .
container_name: consul-client1
restart: always
tty: true
ports:
- "8001:80"
networks:
- app-network
consul_client2:
build: .
container_name: consul-client2
restart: always
tty: true
ports:
- "8002:80"
networks:
- app-network
networks:
app-network:
driver: bridge
FROM nginx:1.15.0-alpine
RUN apk update && apk add bash bind-tools vim curl
RUN wget https://releases.hashicorp.com/consul/1.5.3/consul_1.5.3_linux_amd64.zip
RUN unzip consul_1.5.3_linux_amd64.zip && mv consul /usr/bin && rm -f consul_1.5.3_linux_amd64.zip
RUN mkdir /etc/consul.d && mkdir /var/consul.d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment