似乎EC2用户数据在这里优先,并且从不执行启动模板用户数据。 如果我从EC2中删除用户数据,它将执行LaunchTemplate用户数据而不会出现任何问题。 使用的AMI ID是CentOS 7。 如何实现以一定顺序运行两个User-Data。
我已经使用cloudformation了很多,并浏览了论坛。
{
"Resources": {
"BSLaunchTemplate": {
"Type": "AWS::EC2::LaunchTemplate",
"Properties": {
"LaunchTemplateName": "BroadSoftLaunchTemplate2",
"LaunchTemplateData": {
"KeyName": "haystackaccess",
"ImageId": "ami-014b38e758721be30",
"InstanceType": "t2.medium",
"SecurityGroupIds":["sg-e0b92fa7"],
"UserData": {
"Fn::Base64": {
"Fn::Join":["", [
"#!/bin/bash \n",
"yum update -y \n",
"yum –y install epel-release \n",
"yum -y install python-pip \n",
"pip install pystache \n",
"pip install argparse \n",
"pip install python-daemon \n",
"pip install requests \n",
"yum install -y https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.amzn1.noarch.rpm \n",
"echo UD_OF_LT_1 >> /var/log/user-data.log \n",
"echo UD_OF_LT_2 >> /var/log/user-data.log \n",
"echo UD_OF_Lt_3 >> /var/log/user-data.log \n"
]
]
}
}
}
}
},
"primaryec2": {
"Type": "AWS::EC2::Instance",
"Properties": {
"LaunchTemplate": {
"LaunchTemplateId":{"Ref":"BSLaunchTemplate"},
"Version":"1",
},
"Tags": [
{
"Key": "Name",
"Value": "Network Server"
}],
"UserData":{
"Fn::Base64": {
"Fn::Join": ["",[
"#!/bin/bash \n",
"echo UD_OF_EC2_1 >> /var/log/user-data.log \n",
"echo UD_OF_EC2_2 >> /var/log/user-data.log \n",
"echo UD_OF_EC2_3 >> /var/log/user-data.log \n"
]
]
}
}
}
}
}
}
答案 0 :(得分:0)
主要ec2实例的目的是什么?我想您需要在主数据库上运行额外的命令。我的意思是,您可以只复制命令-将它们放入外部bash文件中可能会使此处的工作变得更轻松。或使用启动模板中使用的命令创建AMI,然后在主实例中使用自定义AMI。您也许也可以对条件进行处理,但是我认为您必须对此有所创新,因为我认为您不能直接在用户数据本身中使用它们。
蒂姆