厨师依次部署开始服务和重新启动服务
我正在阅读https://serverfault.com/questions/378520/chef-stop-and-start-service-in-sequence,并想问问不同的过程。
第1步:框架引导到jboss服务
bash "bootstrap application" do
code <<-EOF
ant bootstrap
EOF
end
第2步:然后启动jboss
service "jboss" do
action :start
end
第3步:安装应用程序
bash "install application" do
code <<-EOF
ant install
EOF
end
在步骤2和步骤3之间,ant安装返回错误,因为jboss尚未启动。 但在第二轮中取得成功。 很显然,第3步不知道jboss是否已经启动。
厨师如何做到这一点?
好吧,我已经从ruby_block做到了这一点
# for managing service
# jboss block until operational
ruby_block "block_until_operational" do
block do
until IO.popen("netstat -lnt").entries.select { |entry|
entry.split[3] =~ /:#{node[:jboss][:default_port]}$/
}.size == 1
Chef::Log.debug "service[jboss] not listening on port #{node[:jboss][:default_port]}"
sleep 1
end
end
action :nothing
end
我创建了这个红宝石块,它会监听端口8080,直到它返回1(启动)并通过调用它
service "jboss" do
action :start
notifies :create, 'ruby_block[block_until_operational]', :immediate
end
链接地址: http://www.djcxy.com/p/78303.html
上一篇: chef deploy start service and restart service in sequence