[英]passing variables to cloud-config chef?
我正在嘗試使用廚師功能使用cloud-init創建用戶數據腳本。 我遇到了一個限制,我想知道是否有解決方法。 我需要我的節點名稱是唯一的,因為Chef服務器將僅接受具有唯一名稱的客戶端。 我已經嘗試了幾種方法來傳遞日期時間變量或實例ID,但似乎無法將變量傳遞給node_name部分。
node_name: "server-app-$INSTANCE_ID"
要么
node_name: "server-app-$(date +%s)"
有沒有一種方法可以避免此錯誤,從而不會按字面意義進行解釋?
Chef encountered an error attempting to create the client "server-app-$INSTANCE_ID"
在寫出client.rb
之前,必須先進行擴展:
echo "node_name '$(date +%s)' >> /etc/chef/client.rb"
如果兩台計算機在同一秒內啟動,這仍然可能會沖突。 我強烈建議改用EC2實例ID或IP地址。 您可以從元數據服務器獲取它們。 有關示例,請參見https://github.com/coderanger/brix/blob/master/packer/client-bootstrap.sh#L26-L37 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.