not_if在bash资源中没有按预期工作

时间:2016-08-13 04:46:16

标签: bash grep chef chef-recipe cookbook

我写了一个bash资源如下:

bash 'initialize_vault' do
  environment (node['vault']['env'])
  code <<-EOH
    vault init > /etc/vault/keys
  EOH
 not_if { vault init | grep 'initialized' }
end

似乎not_if没有按预期工作,因为bash每次都在执行。

在这里写not_if的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

好的,倒带。 not_if有两种截然不同的模式。您可以传递一个像not_if "foo bar"这样的字符串,它将字符串作为命令运行。你也可以给它一个像not_if { foo('bar') }这样的Ruby块,它将块作为Ruby代码运行。你在这里越过了溪流:)