使用 Chef,如果服务未运行或重新启动,我该如何启动它?
我正在运行 Ubuntu 12.04,我目前正在处理的服务是 PostgreSQL。停止和启动它几乎可以工作,但厨师似乎在它完全停止并失败之前尝试启动它。
使用 Chef,如果服务未运行或重新启动,我该如何启动它?
我正在运行 Ubuntu 12.04,我目前正在处理的服务是 PostgreSQL。停止和启动它几乎可以工作,但厨师似乎在它完全停止并失败之前尝试启动它。
这是我用来有条件地为 docker 容器执行几个(重新)启动类型操作之一的代码大纲。在@giannis-nohj 的总是重启建议由于某种原因不起作用的情况下,它可以适用于服务(重新)启动情况。
my_file = file ...
my_image = docker_image 'my-image' do
repo 'my-image'
action :pull
end
ruby_block 'compute docker action' do
block do
action = if my_image.updated_by_last_action?
:redeploy
elsif my_file.updated_by_last_action?
:restart
else
:run
end
resources('docker_container[my-container]').delayed_action(action)
end
end
docker_container 'my-container' do
repo 'my-image'
action :nothing
end