我目前正在使用WindowsRebootHandler,在Chef-client运行结束时(即运行所有食谱后)重启机器。
有没有办法在每个食谱运行结束时安排重启机器而不是自己运行厨师?
即使我在windows_reboot
函数上尝试使用超时0,也会在Chef-client运行结束时重启。
答案 0 :(得分:0)
好主意与否,这是一种做法:
让厨师客户在一个名为“firstrun'”的环境中开始。 添加食谱给'firstrun'您的角色的环境,它执行以下操作:
Windows将启动并在“生产”中运行厨师。环境,您可以在其中运行所有其他食谱。
答案 1 :(得分:0)
我将此作为答案添加,因为我自己偶然发现了这个问题。
您可以根据重启是否等待来包含配方:
include_recipe 'mycookbook::second_recipe' unless reboot_pending?
windows_reboot 30
timeout 30
reason 'scheduled reboot'
action :nothing
end
some_task 'stuff' do
...
notifies :request, 'windows_reboot[30]', :delayed
end
我们的想法是建立一个食谱依赖链,这样厨师的运行结束将是第一个请求重启的方法。
Alex Vinyar有一个Github存储库,可以处理这个以及其他模式来处理Chef中的重启。