Chef执行资源not_if guard返回1;仍然跳过



我发现了这个问题,这个问题非常相似,但我正在实例上执行测试代码,根据文档,这意味着不应该应用保护。然而,它每次都在跳过。如有任何帮助,我们将不胜感激。

厨师代码:

# Install the DNS plugin for the CLI
execute 'Install-DNS-plugin' do
command 'akamai install dns --force'
not_if 'akamai list | grep dns'
end

总是导致跳过:

==> default:   * execute[Install-DNS-plugin] action run
==> default:  (skipped due to not_if)

尽管在实例中,保护代码返回1:

[root@vagrant ~] $ akamai list | grep dns
[root@vagrant ~] $ echo $?
1

akamai cli是否依赖于特定的环境变量或shell初始化?除非您指定它们,否则not_if中可能不存在这两者。看见https://docs.chef.io/resource_common/#arguments

我建议在执行资源中运行akamai list | grep dns来调试结果。

最新更新