![](/img/trans.png)
[英]CloudFormation cfn-init breaking in AWS::EC2::LaunchTemplate on Ubuntu base
[英]cfn-init for cloudformation launchtemplate
你如何在LaunchTemplate中使用cfn-init? 这适用于ECS群集中的EC2实例,在自动缩放组中。
实例的Metadata
部分在哪里以及要传递给cnf-init的--resource
是什么?
LaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Properties:
LaunchTemplateName: !Sub ${AWS::StackName}-launch-template
LaunchTemplateData:
SecurityGroups:
- !Ref DMZSecurityGroup
- !Ref ECSSecurityGroup
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
yum update -y aws-cfn-bootstrap
/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource ??? --region ${AWS::Region}
yum -y update
我对元数据的最佳猜测会产生错误:
Property validation failure: [Encountered unsupported properties in {/LaunchTemplateData}: [Metadata]]
我将元数据放在错误的嵌套级别,它应该与Type:
和Properties:
一起位于最顶层,而不是在Properties:LaunchTemplateData:
。
LaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Metadata:
AWS::CloudFormation::Init:
config:
files:
/var/www/html/index2.html:
content: TestString
Properties:
LaunchTemplateData:
SecurityGroupIds:
- !GetAtt DMZSecurityGroup.GroupId
- !GetAtt ECSSecurityGroup.GroupId
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
yum update -y aws-cfn-bootstrap
/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource ECSLaunchTemplate --region ${AWS::Region}
yum -y update
只有在cloudformation模板本身为您的实例定义一些初始化步骤时,才应使用cfn-init
。
cfn-init
脚本告诉cloudformation从模板定义( AWS::CloudFormation::Init
部分)读取配置步骤,并在实例上“执行”它们。
您还可以通过在用户数据部分中传递shell脚本来引导您的实例。
在您的情况下,由于我看不到YAML文件中定义的任何引导程序配置步骤,因此无需在用户数据脚本中调用cfn-init
。
有关cfn-init
更多信息: https : cfn-init
有关AWS::CloudFormation::Init
更多信息: https AWS::CloudFormation::Init
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.