我正在使用Packer和Chef构建管道。我的厨师运行列表中有一堆第三方烹饪书,其中大多数要求重启。当发生这种情况时,整个厨师都会停下来并且打包机出错并且会破坏机器。
有没有办法在厨师运行期间忽略所有重启请求?我想在运行结束时重新启动,而不是在运行期间。到目前为止,我看到的唯一解决方案是编辑菜谱并注释掉重启。
编辑:我正在使用来自github的dotnetframework cookbook,它正在使用“reboot”资源。答案 0 :(得分:1)
没有好办法全局捕获所有重新启动请求并将它们从立即设置为延迟。您的两个选项是编辑然后维护您依赖的每个第三方烹饪书的私有版本,并让它们设置一个全局重启标志,在收敛结束时处理或覆盖窗口中的reboot
资源食谱,以便它设置一个标志,然后在最后处理该标志。
两者都需要制作自己的内部分支,这两者都不是一个很好的选择。一个更好的方法是问你为什么需要那些第三方烹饪书,如果你可以自己编写一个更简化的流程,按照你的要求重新启动。
答案 1 :(得分:1)
您可以对reboot
资源进行monkeypatch以使用no-op提供程序:
Chef::Provider::Noop.provides(:reboot)
Chef::Provider::Noop.provides(:windows_reboot)