[英]How to use variables in Chef/Ruby execute command?
我正在創建一個簡單的Chef食譜,用於在VPS上設置虛擬主機。 我通過將domain
變量傳遞給Chef / .erb模板來創建正確的.conf文件,但是我也在嘗試這樣做(簡化的代碼示例):
node[:domains].each do |domain|
execute 'sudo mkdir -p /var/www/#{domain}/public_html'
end
但是,變量不會輸出到字符串中,命令只是創建一個名為:
/var/www/#{domain}/public_html
那么...在Chef執行命令中是否存在使用循環中的變量的公認方法-還是我的Ruby語法不合常規?
嘗試將變量注入字符串時,請使用雙引號而不是單引號。
node [: domains] .each do | domain |
execute "create_dir_#{domain}" do
command "sudo mkdir /var/www/#{domain}/public_html"
end
end
我建議使用目錄資源而不是執行
node [: domains] .each do | domain |
directory "/var/www/#{domain}/public_html" do
recursive true
action :create
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.