Chef machine_execute NoMethodError:未定义的方法`[]'

时间:2017-05-04 09:32:56

标签: chef chef-recipe

我正在尝试优雅地停止然后在远程盒子上启动正在运行的服务。

任何使用'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

0 个答案:

没有答案