Проблема:
Я хочу, чтобы выборочно перезапустить службу в шеф-повар в зависимости от роли узла. Если я не делаю перезапуск, я бы хотел пометить узел для перезапуска позже.
В настоящее время у меня есть код, который выглядит следующим образом
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 при получении
неопределенный метод `tag 'для Chef :: Resource :: RubyBlock
Я также пытался передать переменную с помощью node.run_state, но, похоже, это тоже не работает. любая идея, чтобы обойти это, будет принята с благодарностью