到目前为止,我一直在手动启动 EC2 实例,复制一个下载我的 chef + chef 工件的 bash 脚本,并调用 chef-solo 来配置实例。
该公司的一位前 AWS 工程师曾经创建过 CF 模板;我几乎不知道如何使用它。
有没有办法将我的 bash 脚本集成到 CF 模板中,以便在 CF EC2 实例启动时调用我的 bash 脚本并执行实例auto-provisioned
?
答案1
是的,您可以使用对象UserData
的属性AWS::EC2::Instance
。
此属性将 shell 脚本的 base64 编码版本作为输入。但是,您可以借助 Cloudformation Base64 函数以内联方式提供脚本:
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash -v\n",
"# Script goes here\n"
]]}}