Cfn

 view release on metacpan or  search on metacpan

t/cfn_json/bees-with-machineguns.json  view on Meta::CPAN

                                    "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",
                                                                 { "Fn::GetAtt": ["CfnKeys", "SecretAccessKey"] }]] },
                                "mode" : "000600",
                                "owner": "ec2-user",
                                "group": "ec2-user"
                            },
                            "/root/.awssecret" : {
                                "content" : { "Fn::Join" : ["", [{ "Ref": "CfnKeys" }, "\n",
                                                                 { "Fn::GetAtt": ["CfnKeys", "SecretAccessKey"] }]] },
                                "mode" : "000600",
                                "owner": "root",
                                "group": "root"
                            }
                        },
                        "commands" : {
                            "00install_aws" : {
                                "command" : ["perl", "/home/ec2-user/tools/aws", "--install"]
                            },
                            "01run_bees" : {
                                "command" : ["su", "ec2-user", "-c", "./run-bees"],
                                "cwd" : "/home/ec2-user",
                                "test" : ["test", "true", "=", { "Ref": "RunTests" }]



( run in 0.895 second using v1.01-cache-2.11-cpan-71847e10f99 )