【发布时间】:2019-06-24 13:19:18
【问题描述】:
我正在尝试创建一个 CloudFormation 堆栈,该堆栈具有 UserData 脚本以在启动 EC2 实例时安装 java、tomcat、httpd 和 java 应用程序。 但是,使用所有资源成功创建了堆栈,但是当我连接到 EC2 实例以检查上述应用程序的配置时,我没有找到任何资源。我的用例是使用上述所有应用程序/软件启动一个实例,以自动安装。
UserData:
Fn::Base64:
Fn::Join:
- ' '
- - '#!/bin/bash -xe\n'
- 'sudo yum update && install pip && pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz\n'
- 'date > /home/ec2-user/starttime\n'
- 'sudo yum update -y aws-cfn-bootstrap\n'
# Initialize CloudFormation bits\n
- ' '
- '/opt/aws/bin/cfn-init -v\n'
- ' --stack\n'
- '!Ref AWS::StackName\n'
- ' --resource LaunchConfig\n'
- 'ACCESS_KEY=${HostKeys}&SECRET_KEY=${HostKeys.SecretAccessKey}\n'
# Start servers\n
- 'service tomcat8 start\n'
- '/etc/init.d/httpd start\n'
- 'date > /home/ec2-user/stoptime\n'
Metadata:
AWS::CloudFormation::Init:
config:
packages:
yum:
- java-1.8.0-openjdk.x86_64: []
- tomcat8: []
- httpd: []
services:
sysvinit:
httpd:
enabled: 'true'
ensureRunning: 'true'
files:
- /usr/share/tomcat8/webapps/sample.war:
- source: https://s3-eu-west-1.amazonaws.com/testbucket/sample.war
- mode: 000500
- owner: tomcat
- group: tomcat
CfnUser:
Type: AWS::IAM::User
Properties:
Path: '/'
Policies:
- PolicyName: Admin
PolicyDocument:
Statement:
- Effect: Allow
Action: '*'
Resource: '*'
HostKeys:
Type: AWS::IAM::AccessKey
Properties:
UserName: !Ref CfnUser
【问题讨论】:
-
不清楚是什么问题。登录后会发生什么?这句话不完整。你看到了什么错误信息?
-
另外,无论您遇到什么问题,不要在您的实例中注入访问密钥和密钥。而是创建一个角色并将该角色分配给您的 EC2 实例。 aws.amazon.com/blogs/aws/…
-
问题是在创建堆栈时没有安装软件。查看 /var/log/cloud-init.log 文件后,我得到以下信息: cloud-init[3369]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [1] util.py [DEBUG]:运行失败 /var/lib/cloud/instance/scripts/part-001 [1] Traceback(最近一次调用最后):文件“/usr/lib/python2.7/site-packages/cloudinit /util.py”,第 860 行,在 runparts subp(prefix + [exe_path], capture=False, shell=True) 文件“/usr/lib/python2.7/site-packages/cloudinit/util.py”,行2053,在 subp cmd=args)
标签: amazon-web-services amazon-ec2 amazon-cloudformation user-data cloud-init