在启动传递用户数据的cloudformation模板时遇到问题。似乎内部没有命令在运行。实例运行状况良好,无需运行这些命令。请帮助解决。
AWSTemplateFormatVersion : 2010-09-09
Description: sonar
Resources:
Ec2Instance:
Type: AWS::EC2::Instance
Properties:
KeyName: sivakey_feb
ImageId: ami-04bfee437f38a691e
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -xe
sudo chown -R ec2-user:ec2-user /opt/sonar/temp/conf
/opt/sonar/bin/linux-x86-64/sonar.sh start
InstanceType: t2.large
Tags:
-
Key: Name
Value: sonar
答案 0 :(得分:2)
所以我看不到您的脚本有任何问题。但我建议采取以下行动;
可执行脚本标志
chmod +x /opt/sonar/bin/linux-x86-64/sonar.sh
出于调试目的,添加以下行
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
所以您的用户数据应该看起来像
#!/bin/bash -xe
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
sudo chown -R ec2-user:ec2-user /opt/sonar/temp/conf
chmod +x /opt/sonar/bin/linux-x86-64/sonar.sh
/opt/sonar/bin/linux-x86-64/sonar.sh start
从aws docs中摘录的其他行;
要解决EC2实例引导程序上的问题而不必通过SSH访问实例,可以将代码添加到用户数据bash脚本中,该脚本会将所有输出重定向到/var/log/user-data.log和到/ dev / console。执行代码后,您可以在控制台中看到用户数据调用日志。