簡體   English   中英

阻止Chef在Ubuntu 14.04中兩次運行bash命令

[英]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每次運行時都會運行該腳本的一部分,並且由於您對此沒有保護,因此一遍又一遍地附加相同的值。 我們提供templatefile資源,以冪等方式管理文件內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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