AWS::CloudFormation::Init yum 更新失败
AWS::CloudFormation::Init yum update fails
有一点问题,所以我的 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"
}
},
这个 yaml 应该做同样的事情,你不必直接调用 sudo
#cloud-config
---
package_update: true
package_upgrade: true
package_reboot_if_required: true
有一点问题,所以我的 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"
}
},
这个 yaml 应该做同样的事情,你不必直接调用 sudo
#cloud-config
---
package_update: true
package_upgrade: true
package_reboot_if_required: true