2016-08-19 87 views
0

在Chef食谱中,我使用bash命令来设置env变量。防止厨师在Ubuntu中运行两次bash命令14.04

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和每次运行无业游民提供

的/ etc /环境文件结束这样的时间扎入的/ etc /环境

foo="foo" 
bar="bar" 
foo="foo" 
bar="bar" 

有没有一种方法可以防止这个bash命令在Chef中运行多次?

+0

'厨师食谱'什么? –

回答

0

虽然马克是正确地指出有替代品,在更详细的答案是,你有什么不是“幂等”。厨师每次运行时都会运行这段脚本,并且由于您没有对它的保护,所以相同的值会一遍又一遍地被附加。我们提供templatefile资源以幂等方式管理文件内容。