Public | Automated Build

Last pushed: 9 months ago
Short Description
... with consul-template
Full Description

------ PREPARATION ---------
sudo yum install -y bind-utils dnsmasq

vi /etc/resolv.conf
search localdomain
nameserver 127.0.0.1
nameserver --the original--

vi /etc/dnsmasq.d/10-consul.conf
server=/consul/127.0.0.1#8600
<<

docker run -d --name consul -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul -server -bootstrap -ui-dir /ui
CONSUL=<HOST_IP>:8500
curl -X PUT $CONSUL/v1/kv/config/webapp/TEST -d "Dies ist ein Test"

------ END PREPARATION ---------

------ LIVE DEMO ---------

Service Discovery

docker run -d -p 8080:80 --name helloworld svenmalvik/helloworld

CHANGEME: curl -X PUT -d '{ "ID": "helloworld","Name": "helloworld","Address": "<HOST_IP>","Port": 8080}' http://$CONSUL/v1/agent/service/register
curl $CONSUL/v1/catalog/services
curl $CONSUL/v1/catalog/service/helloworld
dig @localhost -p 8600 helloworld.service.consul
dig helloworld.service.consul

Register DEMO

dig helloworld.service.consul SRV

consul template

docker run -it -p 80:80 --name httpd --entrypoint bash --env CONSUL=$CONSUL svenmalvik/httpd
vi /etc/consul-templates/app.conf.tmpl
consul-template -consul=$CONSUL -template "/etc/consul-templates/app.conf.tmpl:/usr/local/apache2/conf/extra/app.conf:httpd -k restart" -once
vi /usr/local/apache2/conf/extra/app.conf
From browser: http://localhost
docker stop helloworld httpd; docker rm helloworld httpd

envconsul

docker run -it -p 8080:80 --name helloworld --entrypoint bash --env CONSUL=$CONSUL svenmalvik/helloworld
/opt/envconsul -consul $CONSUL -sanitize -upcase -prefix config/webapp /go/bin/helloworld
From browser: http://localhost:8080
curl -X PUT $CONSUL/v1/kv/config/webapp/TEST -d "This is a test"
From browser: http://localhost:8080

Clean up

curl -X DELETE $CONSUL/v1/agent/service/deregister/helloworld
curl -X PUT $CONSUL/v1/kv/config/webapp/TEST -d "Dies ist ein Test"
docker stop helloworld httpd; docker rm helloworld httpd
------ END OF LIVE DEMO ---------

Docker Pull Command
Owner
svenmalvik
Source Repository

Comments (0)