[英]Prevent Chef from running the bash commands twice in Ubuntu 14.04
在Chef食譜中,我使用bash命令來設置env變量。
bash 'setup_env' do
code <<-EOH
echo #{node['foo']} | sudo tee --append /etc/environment
echo #{node['bar} | sudo tee --append /etc/environment
for line in $( cat /etc/environment ) ; do export $line ; done
EOH
end
每次我運行無業游民的規定時,這會將foo和bar寫入/ etc / environment
/ etc / environment文件最終如下所示:
foo="foo"
bar="bar"
foo="foo"
bar="bar"
有沒有一種方法可以防止此bash命令在Chef中運行多次?
社區食譜etc_environment可用於管理“ / etc / environment”文件。
查看其代碼,您會發現它使用廚師模板來管理文件:
雖然Mark指出有其他選擇是正確的,但更詳細的答案是您擁有的不是“冪等”的。 Chef每次運行時都會運行該腳本的一部分,並且由於您對此沒有保護,因此一遍又一遍地附加相同的值。 我們提供template
和file
資源,以冪等方式管理文件內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.