Chef infra 如何计划在配方运行结束时重新启动Windows计算机,而不是在chef客户端运行时重新启动?
我目前正在使用,以在chef客户端运行结束时(即运行所有配方后)重新启动计算机 有没有办法在每次配方运行结束时而不是在chef客户端运行时安排机器重启Chef infra 如何计划在配方运行结束时重新启动Windows计算机,而不是在chef客户端运行时重新启动?,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我目前正在使用,以在chef客户端运行结束时(即运行所有配方后)重新启动计算机 有没有办法在每次配方运行结束时而不是在chef客户端运行时安排机器重启 即使我尝试在windows\u reboot功能上使用timeout 0,重新启动也发生在chef客户端运行结束时。好主意与否,下面是一种方法: 让chef客户端在名为“firstrun”的环境中启动。 为您的角色向“firstrun”环境添加配方,该配方可执行以下操作: 做你的安装 将chef客户端配置更改为在生产环境中运行 重新启动windo
即使我尝试在
windows\u reboot
功能上使用timeout 0,重新启动也发生在chef客户端运行结束时。好主意与否,下面是一种方法:
让chef客户端在名为“firstrun”的环境中启动。
为您的角色向“firstrun”环境添加配方,该配方可执行以下操作:
然后Windows将启动并在“生产”环境中运行chef,在该环境中,您可以运行所有其他食谱。我将添加此作为答案,因为我自己偶然发现了这个问题 根据重启是否挂起,您可以包括配方,如下所示:
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有一个用于此模式和其他模式的存储库,用于在Chef中处理重新启动。@Draco我想在安装应用程序之前安装一些Windows软件包。例如,我想安装.NET framework,重新启动计算机,然后安装我的应用程序。不,这可能是个坏主意。你想安排一个约会吗reboot@sethvargo是的,我正在使用
windows\u reboot
功能计划重新启动。但是,在执行run_列表中的所有配方之后,重新启动了。我的要求是在一个配方操作完成后停止chef客户端运行,并重新启动机器。重启后,继续剩下的菜谱。我解释说这是个坏主意,也不是个好主意。你应该考虑用不同的方式来解决这个问题。“SethValGo”有什么替代的厨师来处理这些类型的需求。