如何在配方运行结束时安排重启Windows机器而不是自动运行主机客户端?

时间:2013-12-17 07:25:22

标签: chef chef-recipe

我目前正在使用WindowsRebootHandler,在Chef-client运行结束时(即运行所有食谱后)重启机器。

有没有办法在每个食谱运行结束时安排重启机器而不是自己运行厨师?

即使我在windows_reboot函数上尝试使用超时0,也会在Chef-client运行结束时重启。

2 个答案:

答案 0 :(得分:0)

好主意与否,这是一种做法:

让厨师客户在一个名为“firstrun'”的环境中开始。 添加食谱给'firstrun'您的角色的环境,它执行以下操作:

  1. 进行安装。
  2. 将Chef客户端配置更改为在生产环境中运行。
  3. 重新启动Windows
  4. 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中的重启。