【发布时间】:2021-01-23 11:38:36
【问题描述】:
我创建了一个模板,在其中创建了 EC2 实例,并使用 cfn-init 处理配置集,在实例的 Userdata 部分,我编写了一些要由 cloud-init 执行的命令和一些要执行的命令没有 cloud-init。
我不确定哪些命令按什么顺序运行? 我的意思是,命令的执行顺序是什么?例如:
- 配置集中的命令
- 用户数据的 cloud-init 部分中的命令
- 用户数据中的命令
我的部分代码如下:
UserData:
Fn::If:
- DatadogAgentEnabled
-
Fn::Base64: !Sub |
#!/bin/bash -xe
yum update -y
yum update -y aws-cfn-bootstrap
/opt/aws/bin/cfn-init --stack ${AWS::StackName} --resource GhostServer --configsets prepare_instance_with_datadog --region ${AWS::Region}
/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource GhostServer --region ${AWS::Region}
#cloud-config <----cloud-init section inside the Userdata
runcmd:
- [ sh, -c, "sed 's/api_key:.*/api_key: {DatadogAPIKey}/' /etc/datadog-agent/datadog.yaml.example > /etc/datadog-agent/datadog.yaml" ]
- systemctl restart datadog-agent
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-cloudformation