#!

问题描述 投票:0回答:1

我正在为一个自动伸缩组创建一个启动配置。

WebAppLaunchConfig:
    Type: AWS::AutoScaling::LaunchConfiguration
    Properties:
      UserData: !Base64 |
        #!/bin/bash
        exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
        sudo su
        apt-get update -y
        apt-get install unzip awscli -y
        apt-get install apache2 -y
        systemctl start apache2.service
        cd /var/www/html
        aws s3 cp s3://udacity-demo-1/udacity.zip .
        unzip -o udacity.zip
        /bin/echo "Hello World" >> /tmp/testfile.txt
      IamInstanceProfile:
        Ref: "ProfileWithRolesForOurApp"
      KeyName: UdacityCFNEC2Key
      ImageId: ami-005bdb005fb00e791
      SecurityGroups:
      - Ref: WebServerSecGroup
      InstanceType: t3.medium
      BlockDeviceMappings:
      - DeviceName: "/dev/sdk"
        Ebs:
          VolumeSize: '10'

我把服务器放在一个公共子网中,以便简单地ssh进入并确认Apache是否启动,我可以看到它没有启动。当我试图运行启动命令时,我得到一个错误,即httpd.conf文件不存在。

我到底做错了什么?

我找到的最接近的问题是。在Cloudformation中使用userdata 他们在讨论ami的类型,我已经能够成功地将用户数据日志导出到控制台,我使用的是ubuntu ami,所以我认为这不是一个类似的问题。

bash amazon-cloudformation aws-auto-scaling
1个回答
0
投票

我相信在你的脚本中缺少这个命令

-> systemctl enable httpd

下面是AWS文档中的一个例子。

https:/docs.aws.amazon.comAWSEC2latestUserGuide用户数据。


0
投票

我发现确定问题的最好方法是启动一个配置相同的新主机,并使用面向公众的ip和允许ssh的安全组。 然后ssh进入机器,逐一运行每个命令,确认是哪个命令导致了故障。

最后我简单的我发现,通过从我所在地区的启动实例列表中选择不同的建议AMI,我能够成功的让用户数据脚本成功完成。

© www.soinside.com 2019 - 2024. All rights reserved.