遇到了一个小问题,所以我的 json 文件的一部分我想运行一个命令来更新所有包,以下命令是:
"commands" : {
"update_yum_packages" : {
"command" : "sudo yum update -y"
}
},
现在,如果我从 json 文件中删除它,堆栈将毫无问题地创建,但是当我添加命令时,我会收到来自 AWS::CloudFormation::WaitCondition 的错误。我已将超时设置为 1200 这里有明显错误吗?
一旦通过 ssh 连接到新实例,我就可以正常运行该命令。
最佳答案
您可以查看/var/log/cloud-init-output.log中的日志文件。
您将看到它提示在没有 tty 的情况下运行 sudo 命令:
cloud-init-output.log:sudo: sorry, you must have a tty to run sudo
用户数据以root身份运行,您不需要使用“sudo”。并且使用sudo会失败,并使cloud-init进程失败。
所以只需使用:
"commands" : {
"update_yum_packages" : {
"command" : "yum update -y"
}
},
关于amazon-web-services - AWS::CloudFormation::Init yum 更新失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27799693/