问题: 我想根据节点的角色有选择地重启Chef中的服务。如果我不重新启动,我想标记节点以便以后重新启动。
当前,我有一些看起来像这样的代码
template '/etc/docker/daemon.json' do
source 'daemon.json.erb'
mode '0644'
notifies :run, 'ruby_block[start_right_service]', :immediately
end
ruby_block 'start_right_service' do
action :nothing
block do
if node.role?('dev') ||
node.role?('desktop')
Chef::Log.info('Fireing off a restart this node')
resources(service: 'docker').run_action(:restart)
else
Chef::Log.info('Not allowed to restart this node')
node.run_state['pending_docker_restart'] = true
end
end
end
所以我收到时不能在ruby_block内使用标签
Chef :: Resource :: RubyBlock的未定义方法`tag'
我也尝试用node.run_state传递变量,但这似乎也不起作用。解决此问题的任何想法将不胜感激