{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "Template to create multiple instances.", "Parameters" : { "KeyName" : { "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instances", "Type" : "String" }, "InstanceType" : { "Description" : "Instance type", "Type" : "String", "Default" : "m1.small", "AllowedValues" : [ "m1.tiny", "m1.small", "m1.medium", "m1.large", "m1.xlarge" ], "ConstraintDescription" : "must be a valid EC2 instance type." }, "ImageId" : { "Description" : "Name of the image to use", "Type" : "String", "Default" : "F17-x86_64-cfntools" }, "NumInstances": { "Default": "1", "MinValue": "1", "MaxValue": "100", "Description" : "Number of instances to create", "Type": "Number" } }, "Resources" : { "JobServerGroup" : { "Type" : "OS::Heat::InstanceGroup", "Properties" : { "LaunchConfigurationName" : { "Ref" : "JobServerConfig" }, "Size" : {"Ref": "NumInstances"}, "AvailabilityZones" : { "Fn::GetAZs" : "" } } }, "JobServerConfig" : { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId" : { "Ref" : "ImageId" }, "InstanceType" : { "Ref" : "InstanceType" }, "KeyName" : { "Ref" : "KeyName" }, "NovaSchedulerHints": [ {"Key": "part", "Value": "long"}, {"Key": "ready", "Value": "short"} ], "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ "#!/bin/bash -v\n" ]]}} } } }, "Outputs": { "ServerGroupAddresses": { "Value": { "Fn::GetAtt": ["JobServerGroup", "InstanceList"] }, "Description": "IP Address of instances." } } }