【发布时间】:2014-07-23 20:56:04
【问题描述】:
我目前创建了一个自定义 lwrp,它本质上运行一个 bash 脚本,该脚本在 tomcat 重新启动后为 localhost 卷曲以确保服务正在运行。
我的提供程序文件如下所示:
use_inline_resources
action :run do
bash "checkhealth" do
user "root"
code <<-EOF
echo Started counting
curl http://localhost/version.html
...
EOF
end
end
在我的一个节点上,我有以下块:
service "node" do
supports :start => true, :stop => true, :restart => true, :status => true
action :nothing
notifies :run, "healthcheck[check-status]", :delayed
end
当我运行 chef-client 时,我可以看到 bash 代码运行的回声。
但是,在不同的节点上,我有一个这样的块:
service "tomcat" do
action :restart
notifies :run, "healthcheck[check-status]", :delayed
end
但是我看不到 echo 的任何输出,而且 bash 代码看起来也没有运行。我知道 bash 资源正在执行,因为日志输出显示 bash 资源已成功运行。但是,日志显示后有很长的延迟:
action run[2014-07-23T09:10:23-07:00] INFO: Processing bash[checkhealth] action run
当它说它成功时,这让我觉得 bash 代码发生了一些奇怪的事情,但我不确定是什么。这就是我卡住的地方,希望你们能帮助我找出这个奇怪的错误:)。我猜这可能与在第一个块中,动作是 :nothing,但第二个块有 :restart 的事实有关。
让我知道你们的想法。
谢谢!
【问题讨论】:
标签: bash chef-infra chef-recipe