我正在尝试优雅地停止然后在远程盒子上启动正在运行的服务。
任何使用'machine_execute'的尝试都会导致异常,说明有一个未定义的方法并且搜索异常会产生一些结果fr Vagrant(我没有使用)和端口没有打开(这应该不是问题)
这是我失败的简单测试用例,然后在它下面是我想要使用的完整链。
我尝试尽可能简化它,但收效甚微。提前感谢您的帮助。
machine execute "service #{solrCore} restart" do
machine 'machineName'
end
这是我尝试的完整示例:
machine_execute 'pwd' do
machine "machineName"
command 'pwd'
Chef::Resource::Notification.new('stop', :run, self)
end
#define the service - does nothing
service solrCore do
action :nothing
end
#do something that triggers
machine_execute 'start' do
machine "machineName"
command 'pwd' #test
Chef::Log.info('triggers start')
action :nothing
notifies :start, run_context.resource_collection.find(:service => "#{solrCore}")
end
execute 'stop' do
# some stuff
# on success...
machine "machineName"
command 'pwd' #test
Chef::Log.info('triggers restart')
notifies :stop, run_context.resource_collection.find(:service => "#{solrCore}"), :immediately
notifies :run, 'machine_execute[start]'
end