Cfn
view release on metacpan or search on metacpan
t/cfn_json/bees-with-machineguns.json view on Meta::CPAN
"import string\n",
"import random\n",
"import boto.ec2\n",
"import os\n",
"import sys\n",
"if not os.path.exists('/home/ec2-user/bees_keypair.txt'):\n",
" print >> sys.stderr, 'bees_keypair.txt does not exist'\n",
" sys.exit(-1)\n",
"with file('/home/ec2-user/bees_keypair.txt', 'r') as f:\n",
" kp_name = f.read().strip()\n",
"ec2 = boto.ec2.connect_to_region('", {"Ref" : "AWS::Region" }, "')\n",
"ec2.delete_key_pair(kp_name)\n",
"os.remove('/home/ec2-user/bees_keypair.txt')\n",
"os.remove('/home/ec2-user/.ssh/%s.pem' % kp_name)\n",
"print 'Deleted keypair: %s' % kp_name\n"]]
},
"mode" : "000750",
"owner" : "ec2-user",
"group" : "ec2-user"
},
"/home/ec2-user/create-swarm": {
"content": {
"Fn::Join": [ "", ["#!/bin/bash\n",
"/usr/bin/bees up -k `cat /home/ec2-user/bees_keypair.txt` -s ", { "Ref": "BeeCount" },
" -z ", { "Fn::Select" : [ "1", { "Fn::GetAZs" : "" }] },
" -g ", { "Ref" : "BeeSecurityGroup" },
" --instance ", { "Fn::FindInMap": [ "AWSRegionPlatform2AMI", { "Ref": "AWS::Region" }, "bee"]},
" --login ec2-user\n"]]
},
"mode": "000755",
"owner": "ec2-user",
"group": "ec2-user"
},
"/home/ec2-user/start-swarm": {
"content": {
"Fn::Join": [ "", ["#!/bin/bash\n",
"/usr/bin/bees attack --url http://", { "Fn::GetAtt": [ "ElasticLoadBalancer", "DNSName" ] }, "/",
" -n ", { "Ref": "TotalConnections" },
" --concurrent ", { "Ref": "ConcurrentConnections" }]]
},
"mode": "000755",
"owner": "ec2-user",
"group": "ec2-user"
},
"/home/ec2-user/kill-swarm": {
"content": {
"Fn::Join": ["", ["#!/bin/bash\n",
"/usr/bin/bees down\n"]]
},
"mode": "000755",
"owner": "ec2-user",
"group": "ec2-user"
},
"/home/ec2-user/.boto": {
"content": {
"Fn::Join": ["", [ "[Credentials]\n",
"aws_access_key_id = ", { "Ref": "CfnKeys" }, "\n",
"aws_secret_access_key = ", { "Fn::GetAtt": ["CfnKeys", "SecretAccessKey"] }, "\n",
"[Boto]\n",
"ec2_region_name = ", { "Ref" : "AWS::Region" }, "\n",
"ec2_region_endpoint = ec2.", { "Ref" : "AWS::Region" }, ".amazonaws.com\n",
"elb_region_name = ", { "Ref" : "AWS::Region" }, "\n",
"elb_region_endpoint = elasticloadbalancing.", { "Ref" : "AWS::Region" }, ".amazonaws.com\n" ]]
},
"mode": "000600",
"owner": "ec2-user",
"group": "ec2-user"
},
"/home/ec2-user/run-bees": {
"content": {
"Fn::Join": ["", [ "#!/bin/bash\n\n",
"/home/ec2-user/wait-for-elb\n",
"if [ $? -eq 0 ]\n",
"then\n",
" mkdir /home/ec2-user/swarm-results\n",
" /home/ec2-user/create-keypair > /home/ec2-user/swarm-results/create-keypair.log 2>&1\n",
" bash /home/ec2-user/create-swarm > /home/ec2-user/swarm-results/create-swarm.log 2>&1\n",
" sleep 45 # Allow EC2 instances to fully come up\n",
" bash /home/ec2-user/start-swarm > /home/ec2-user/swarm-results/start-swarm.log 2>&1\n",
" bash /home/ec2-user/kill-swarm > /home/ec2-user/swarm-results/kill-swarm.log 2>&1\n",
" /home/ec2-user/delete-keypair > /home/ec2-user/swarm-results/delete-keypair.log 2>&1\n",
" tar cvf /home/ec2-user/swarm-results.tar.gz /home/ec2-user/swarm-results/*\n",
" chown ec2-user:ec2-user -R /home/ec2-user/swarm-results\n",
" chown ec2-user:ec2-user /home/ec2-user/swarm-results.tar.gz\n",
" aws put ", { "Ref": "ResultBucket" }, "/swarm-results.tar.gz /home/ec2-user/swarm-results.tar.gz\n",
"else\n",
" exit 1\n",
"fi\n"]]
},
"mode": "000755",
"owner": "ec2-user",
"group": "ec2-user"
},
"/home/ec2-user/wait-for-elb" : {
"content" : {
"Fn::Join" : ["", ["#!/usr/bin/python\n",
"import boto.ec2.elb\n",
"import sys\n",
"import time\n",
"elb = boto.ec2.elb.ELBConnection()\n",
"for i in range(120):\n",
" if i > 0:\n",
" time.sleep(5)\n",
" health=elb.describe_instance_health('", { "Ref": "ElasticLoadBalancer" }, "')\n",
" healthy_instances = [i for i in health if i.state == 'InService']\n",
" if len(healthy_instances) == ", { "Ref": "AppInstanceCountDesired" }, ":\n",
" break\n",
"else:\n",
" print >> sys.stderr, 'Gave up waiting for ", { "Ref": "AppInstanceCountDesired" }, "instances.'\n",
" sys.exit(1)\n"]]
},
"mode" : "000750",
"owner" : "ec2-user",
"group" : "ec2-user"
},
"/home/ec2-user/tools/aws" : {
"source" : "https://raw.github.com/timkay/aws/master/aws",
"mode" : "000755",
"owner": "ec2-user",
"group": "ec2-user"
},
"/home/ec2-user/.awssecret" : {
"content" : { "Fn::Join" : ["", [{ "Ref": "CfnKeys" }, "\n",
( run in 1.123 second using v1.01-cache-2.11-cpan-5a3173703d6 )