2015-01-06 47 views
0

有一個小問題,所以我的JSON文件的一部分,我想運行一個命令來更新所有的軟件包下面的命令是:AWS :: CloudFormation ::初始化百勝更新失敗

 "commands" : { 
      "update_yum_packages" : { 
      "command" : "sudo yum update -y" 
      } 
     }, 

現在,如果我從我的json文件中刪除這個堆棧將創建沒有問題,但是當我添加命令時,我從AWS :: CloudFormation :: WaitCondition得到一個錯誤。我已將超時設置爲這裏是否有明顯的錯誤?

我可以運行命令罰款後,我ssh到新的實例。

+1

嘗試不'sudo'運行它。如果失敗,請粘貼'/ var/log/cloud-init *'中的相關日誌條目。 – tedder42

+0

@ tedder42,你可以直接回答,我也認爲這是問題所在。 – BMW

回答

1

您可以查看/var/log/cloud-init-output.log中的日誌文件。

你會看到它抱怨沒有一個tty運行sudo命令:

cloud-init-output.log:sudo: sorry, you must have a tty to run sudo 

用戶數據以root身份運行,你不需要用「命令」。使用sudo將會失敗,並使cloud-init進程失敗。

所以只需使用:

"commands" : { 
     "update_yum_packages" : { 
     "command" : "yum update -y" 
     } 
    }, 
0

這YAML應該做同樣的事情,您無需直接調用須藤

#cloud-config 
--- 
package_update: true 
package_upgrade: true 
package_reboot_if_required: true