[英]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 30
和cd /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.