AWS CloudFormation 模板和 bash init 脚本

AWS CloudFormation 模板和 bash init 脚本

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

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

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

答案1

是的,您可以使用对象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"
]]}}

相关内容