我正在尝试在用户数据中添加一些简单的bash命令,但看起来好像它们没有运行?
AWSTemplateFormatVersion: '2010-09-09'
Resources:
RHELInstance:
Type: AWS::EC2::Instance
Properties:
IamInstanceProfile: Super-Agent
ImageId: ami-26ebbc5c
KeyName: Super-Agent
InstanceType: m4.large
SecurityGroupIds:
- sg-XXXXXX
SubnetId: subnet-XXXXXXX
BlockDeviceMappings:
-
DeviceName: "/dev/sda1"
Ebs:
VolumeSize: 24
VolumeType: gp2
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
yum update -y
cd /tmp
wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb
sudo dpkg -i amazon-ssm-agent.deb
sudo start amazon-ssm-agent
mkdir /tmp/folder/
Tags:
- Key: Name
Value: RHEL07102.00
输出:
专用IP:
值:!GetAtt RHELInstance.PrivateIp
最佳答案
您正在使用ami-26ebbc5c
,它是RHEL-7.4_HVM-20180103-x86_64-2-Hourly2-GP2。
最有可能(但我可能错了)的是,此AMI上未安装cloud-init(用于处理用户数据)。结果,什么也看不到用户数据。
您可以使用以下命令安装cloud-init:
yum install cloud-init
但是,这必须手动完成,然后生成一个新的AMI。
或者,您可以使用Amazon Linux或Ubuntu,这两个默认情况下都安装了cloud-init。
关于bash - 在Cloudformation中使用用户数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48197526/