在Cloudformation中使用userdata

时间:2018-01-10 23:04:09

标签: bash amazon-cloudformation

我试图在我的userdata中添加一些简单的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

输出:   PrivateIP:     价值:!GetAtt RHELInstance.PrivateIp

1 个答案:

答案 0 :(得分:3)

您使用的是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。