Skip to content

Instantly share code, notes, and snippets.

@hutchic
Created July 15, 2016 17:04
Show Gist options
  • Select an option

  • Save hutchic/84a4a2b121fac807b3bf3943a6cf64fe to your computer and use it in GitHub Desktop.

Select an option

Save hutchic/84a4a2b121fac807b3bf3943a6cf64fe to your computer and use it in GitHub Desktop.
Creating a consul cluster using docker-machine on AWS
docker-machine create \
--driver amazonec2 \
--amazonec2-access-key ${AWS_ACCESS_KEY_ID} \
--amazonec2-secret-key ${AWS_SECRET_ACCESS_KEY} \
--amazonec2-region ${AWS_REGION} \
--amazonec2-vpc-id ${AWS_VPC_ID} \
--amazonec2-subnet-id ${AWS_SUBNET_ID} \
--amazonec2-zone ${AWS_ZONE} \
consul1
docker-machine create \
--driver amazonec2 \
--amazonec2-access-key ${AWS_ACCESS_KEY_ID} \
--amazonec2-secret-key ${AWS_SECRET_ACCESS_KEY} \
--amazonec2-region ${AWS_REGION} \
--amazonec2-vpc-id ${AWS_VPC_ID} \
--amazonec2-subnet-id ${AWS_SUBNET_ID} \
--amazonec2-zone ${AWS_ZONE} \
consul2
docker-machine create \
--driver amazonec2 \
--amazonec2-access-key ${AWS_ACCESS_KEY_ID} \
--amazonec2-secret-key ${AWS_SECRET_ACCESS_KEY} \
--amazonec2-region ${AWS_REGION} \
--amazonec2-vpc-id ${AWS_VPC_ID} \
--amazonec2-subnet-id ${AWS_SUBNET_ID} \
--amazonec2-zone ${AWS_ZONE} \
consul3
consul1_private_ip=`docker-machine inspect consul1 | grep PrivateIPAddress | cut -d":" -f2 | grep -o '"[^"]\+"' | cut -d '"' -f 2`
consul2_private_ip=`docker-machine inspect consul2 | grep PrivateIPAddress | cut -d":" -f2 | grep -o '"[^"]\+"' | cut -d '"' -f 2`
consul3_private_ip=`docker-machine inspect consul3 | grep PrivateIPAddress | cut -d":" -f2 | grep -o '"[^"]\+"' | cut -d '"' -f 2`
eval $(docker-machine env consul1)
docker run -d --name consul \
--restart=always \
--net=host \
-e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' \
consul agent -server -bind=${consul1_private_ip} -bootstrap-expect=3
eval $(docker-machine env consul2)
docker run -d --name consul \
--restart=always \
--net=host \
-e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' \
consul agent -server -bind=${consul2_private_ip} -join ${consul1_private_ip}
eval $(docker-machine env consul3)
docker run -d --name consul \
--restart=always \
--net=host \
-e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' \
consul agent -server -bind=${consul3_private_ip} -join ${consul1_private_ip}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment