簡體   English   中英

如何在Chef / Ruby execute命令中使用變量?

[英]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.

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