AWS CloudFormation模板和bash初始化脚本

直到现在,我已经手动启动EC2实例,通过bash脚本进行复制,该脚本下载我的厨师和厨师工件,并调用厨师独奏来调配实例。

公司的前AWS工程师曾经创build过CF模板, 我几乎不知道如何使用。

有没有办法将我的bash脚本整合到CF模板中,以便在CF EC2实例启动时,我的bash脚本被调用并且实例是auto-provisioned

是的,您可以使用AWS::EC2::Instance对象的UserData属性。

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-userdata

这个属性需要inputshell脚本的base64编码版本。 但是,您可以通过Cloudformation Base64函数的帮助来提供脚本:

 "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ "#!/bin/bash -v\n", "# Script goes here\n" ]]}}