Skip to content

Instantly share code, notes, and snippets.

@vfarcic
Created September 17, 2017 16:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vfarcic/b27e0d4dcfa3af5eb2b58316aae13c53 to your computer and use it in GitHub Desktop.
Save vfarcic/b27e0d4dcfa3af5eb2b58316aae13c53 to your computer and use it in GitHub Desktop.
export AWS_ACCESS_KEY_ID=[...]
export AWS_SECRET_ACCESS_KEY=[...]
export AWS_DEFAULT_REGION=us-east-1
curl https://editions-us-east-1.s3.amazonaws.com/aws/stable/Docker.tmpl \
| jq "."
curl https://editions-us-east-1.s3.amazonaws.com/aws/stable/Docker.tmpl \
| jq ".Metadata"
aws cloudformation create-stack \
--template-url https://editions-us-east-1.s3.amazonaws.com/aws/stable/Docker.tmpl \
--capabilities CAPABILITY_IAM \
--stack-name devops22 \
--parameters \
ParameterKey=ManagerSize,ParameterValue=3 \
ParameterKey=ClusterSize,ParameterValue=0 \
ParameterKey=KeyName,ParameterValue=devops22 \
ParameterKey=EnableSystemPrune,ParameterValue=yes \
ParameterKey=EnableCloudWatchLogs,ParameterValue=no \
ParameterKey=EnableCloudStorEfs,ParameterValue=yes \
ParameterKey=ManagerInstanceType,ParameterValue=t2.micro \
ParameterKey=InstanceType,ParameterValue=t2.micro
aws cloudformation describe-stack-resources \
--stack-name devops22 | jq "."
aws cloudformation describe-stacks \
--stack-name devops22 | jq "."
aws cloudformation describe-stacks \
--stack-name devops22 | \
jq -r ".Stacks[0].StackStatus"
aws cloudformation describe-stacks \
--stack-name devops22 | \
jq -r ".Stacks[0].Outputs"
aws cloudformation describe-stacks \
--stack-name devops22 | \
jq -r ".Stacks[0].Outputs[] | \
select(.OutputKey==\"DefaultDNSTarget\")\
.OutputValue"
CLUSTER_DNS=$(aws cloudformation \
describe-stacks \
--stack-name devops22 | \
jq -r ".Stacks[0].Outputs[] | \
select(.OutputKey==\"DefaultDNSTarget\")\
.OutputValue")
aws ec2 describe-instances | jq -r "."
aws ec2 describe-instances | \
jq -r ".Reservations[].Instances[] \
| select(.SecurityGroups[].GroupName \
| contains(\"devops22-ManagerVpcSG\"))\
.PublicIpAddress"
CLUSTER_IP=$(aws ec2 describe-instances \
| jq -r ".Reservations[] \
.Instances[] \
| select(.SecurityGroups[].GroupName \
| contains(\"devops22-ManagerVpcSG\"))\
.PublicIpAddress" \
| tail -n 1)
ssh -i devops22.pem docker@$CLUSTER_IP
docker node ls
docker service create --name test \
--replicas 10 alpine sleep 1000000
docker service ps test
exit
aws ec2 describe-instances \
| jq -r ".Reservations[] \
.Instances[] \
| select(.SecurityGroups[].GroupName \
| contains(\"devops22-ManagerVpcSG\"))\
.InstanceId"
INSTANCE_ID=$(aws ec2 describe-instances \
| jq -r ".Reservations[] \
.Instances[] \
| select(.SecurityGroups[].GroupName \
| contains(\"devops22-ManagerVpcSG\"))\
.InstanceId" \
| tail -n 1)
aws ec2 terminate-instances \
--instance-ids $INSTANCE_ID
aws ec2 describe-instances \
| jq -r ".Reservations[] \
.Instances[] \
| select(.SecurityGroups[].GroupName \
| contains(\"devops22-ManagerVpcSG\"))\
.State.Name"
aws ec2 describe-instances \
| jq -r ".Reservations[] \
.Instances[] \
| select(.SecurityGroups[].GroupName \
| contains(\"devops22-ManagerVpcSG\"))\
.State.Name"
aws ec2 describe-instances \
| jq -r ".Reservations[] \
.Instances[] \
| select(.SecurityGroups[].GroupName \
| contains(\"devops22-ManagerVpcSG\"))\
.State.Name"
CLUSTER_IP=$(aws ec2 describe-instances \
| jq -r ".Reservations[] \
.Instances[] \
| select(.SecurityGroups[].GroupName \
| contains(\"devops22-ManagerVpcSG\"))\
.PublicIpAddress" \
| tail -n 1)
ssh -i devops22.pem docker@$CLUSTER_IP
docker node ls
docker node ls
docker service ps test
docker service update \
--env-add "FOO=BAR" test
docker service ps \
-f desired-state=running test
exit
aws cloudformation delete-stack \
--stack-name devops22
aws cloudformation describe-stacks \
--stack-name devops22 | \
jq -r ".Stacks[0].StackStatus"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment