有一点问题,所以我的json文件的一部分我想运行一个命令来更新以下命令所有的包:
"commands" : {
"update_yum_packages" : {
"command" : "sudo yum update -y"
}
},
现在,如果我从我的json文件中删除它,堆栈将创建没有问题,但是当我添加命令时,我从 AWS :: CloudFormation :: WaitCondition 中收到错误。我已将超时设置为 1200 这里有明显错误吗?
一旦我ssh到新实例,我就可以运行命令了。
答案 0 :(得分:2)
您可以查看/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"
}
},
答案 1 :(得分:0)
这个yaml应该做同样的事情而不必直接调用sudo
#cloud-config
---
package_update: true
package_upgrade: true
package_reboot_if_required: true