AWS CloudFormation 模板和 bash init 脚本

Sam*_*amy 2 amazon-web-services chef-solo amazon-cloudformation

到目前为止,我一直在手动启动 EC2 实例,复制下载我的厨师 + 厨师工件的 bash 脚本,并调用chef-solo 来配置实例。

该公司的一位前 AWS 工程师曾创建过 CF 模板;我几乎不知道如何使用。

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

EEA*_*EAA 9

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

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

此属性将 shell 脚本的 base64 编码版本作为输入。但是,您可以在 Cloudformation Base64 函数的帮助下提供内联脚本:

"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
    "#!/bin/bash -v\n",
    "# Script goes here\n"
]]}}
Run Code Online (Sandbox Code Playgroud)