gpt4 book ai didi

chef-infra - 无法在 Chef 中使用not_if

转载 作者:行者123 更新时间:2023-12-05 01:24:31 25 4
gpt4 key购买 nike

我正在尝试使用bash属性时实现not_if

我正在尝试启动WAS部署管理器,但只有在其未运行时,我才使用一个简单的grep命令来获取正在唤醒的进程的pid,如下面的日志所示。

#Start the DMGR process
bash "start-dmgr" do
user "root"
code %(#{node[:websphere][:was][:was_installLocation]}/bin/startManager.sh)
not_if ("ps -f|grep dmgr|grep -v grep| awk {'print $2'}")
end


以下是来自厨师客户端的调试日志

DMGR进程正在运行时

[2013-06-07T15:13:54-04:00] DEBUG: Skipping bash[was-install-fixpacks] due to not_if command `/apps/websphere/ws70/bin/versionInfo.sh -maintenancePackages | grep `echo /mnt/newInstallers/WAS/APARs/7.0.0.19-WS-WAS-IFPM73674.pak | awk -F '-' '{print $4}' | awk -F '.' '{print $1}'``
Recipe: WAS_NPE::was_startdmgr
* bash[start-dmgr] action run[2013-06-07T15:13:54-04:00] INFO: Processing bash[start-dmgr] action run (WAS_NPE::was_startdmgr line 2)
1973
(skipped due to not_if)


当DMGR进程*未运行*

[2013-06-07T15:31:03-04:00] DEBUG: Skipping bash[was-install-fixpacks] due to not_if command `/apps/websphere/ws70/bin/versionInfo.sh -maintenancePackages | grep `echo /mnt/newInstallers/WAS/APARs/7.0.0.19-WS-WAS-IFPM73674.pak | awk -F '-' '{print $4}' | awk -F '.' '{print $1}'``
Recipe: WAS_NPE::was_startdmgr
* bash[start-dmgr] action run[2013-06-07T15:31:03-04:00] INFO: Processing bash[start-dmgr] action run (WAS_NPE::was_startdmgr line 2)
(skipped due to not_if)


无论在什么情况下总是跳过,我错过了什么

最佳答案

RTM:https://docs.chef.io/resource_common.html

当not_if块返回false时,将执行资源。在bash world中,false表示bash脚本的退出代码不为0。

确保您的bash脚本以不同的退出代码退出。您可以尝试而无需awk:

ps -f | grep -v grep | grep dmgr


因为找不到匹配项,grep以1退出。

关于chef-infra - 无法在 Chef 中使用not_if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16991831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com