我们已经使用 Cloudformation 部署了一些 Windows EC2 实例,这些实例是使用 cfn-init 配置的。脚本。
为了稍后更新实例上的组件,我们需要重新运行一些 Cloudformation::Init configsets使用 cfn-init 帮助程序脚本,所需参数之一 --stack 是堆栈名称。我期望这个值可以通过 EC2 Instance Metadata 动态获得。作为一个单一的调用,但我一直无法找到它。
我正在发布一个解决方法脚本,但我仍然想知道是否有一个我缺少的更简单、强大的方法。
最佳答案
您可能希望在 cloudformation 模板中定义 cfn-hup,以便它使用您需要的变量来放置文件:
来自文档
...
LaunchConfig:
Type: "AWS::AutoScaling::LaunchConfiguration"
Metadata:
QBVersion: !Ref paramQBVersion
AWS::CloudFormation::Init:
...
/etc/cfn/hooks.d/cfn-auto-reloader.conf:
content: !Sub |
[cfn-auto-reloader-hook]
triggers=post.update
path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init
action=/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --configsets wordpress_install --region ${AWS::Region}
runas=root
mode: "000400"
owner: "root"
group: "root"
...
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-hup.html
关于amazon-web-services - 如何发现 EC2 实例上的 AWS Cloudformation 堆栈名称以与 cfn-init 命令一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76039310/