簡體   English   中英

EC2 json模板bash腳本不執行所有操作

[英]EC2 json template bash script not executing all of it

我有我的模板的這一部分:

            "UserData"       : { "Fn::Base64" : { "Fn::Join" : ["", [
              "sudo yum update -y\n",
              "sleep 30\n",
              "sudo mkdir /data \n",
              "cd /data/\n"
                  ]]}}

為服務器。 它似乎執行第一行(因為我可以使用wget)但不執行第3行或第4行。 有什么想法嗎? 謝謝!

除非前兩個字符是#!否則用戶數據不會作為腳本運行#!

嘗試添加以下內容作為用戶數據的第一行,以便CloudInit知道將其作為shell腳本運行:

#!/bin/sh

正如Rico指出的那樣,您可以刪除sudo因為用戶數據腳本在實例的第一次啟動時以root用戶身份運行

此外,如果這是整個用戶數據腳本,則sleep 30cd /data/不提供任何益處。

這將導致代碼如下:

"UserData"       : { "Fn::Base64" : { "Fn::Join" : ["", [
    "#!/bin/sh\n",
    "yum update -y\n",
    "mkdir /data \n",
]]}}

如果還有其他語句要添加到用戶數據腳本,則可以重新添加cd

您可以查看/var/log/cloud-init.log以查看正在進行的操作。 我不認為你需要sudo,因為cloudinit的東西是以root身份運行的。

你也試過:

"mkdir /data\n"

'/ data'和'\\ n'之間沒有空格?

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM