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 )