【问题标题】:Ignoring all reboot requests in Chef忽略 Chef 中的所有重启请求
【发布时间】:2016-11-08 16:19:16
【问题描述】:

我正在使用 Packer 和 Chef 构建管道。我的厨师运行列表中有一堆第 3 方食谱,其中大多数都要求重新启动。发生这种情况时,整个厨师运行停止,打包程序出错并核爆机器。

有没有办法在厨师运行期间忽略所有重新启动请求?我想在运行结束时重新启动,而不是在运行期间。到目前为止,我看到的唯一解决方案是编辑说明书并注释掉重新启动。

编辑:我正在使用来自 github 的 dotnetframework 食谱,它正在使用“重启”资源。

【问题讨论】:

  • 您说的可能是 Windows,不是吗?
  • 是的,特别是 2008R2
  • 不了解您正在使用什么食谱,以及他们是否使用windows_reboot 资源或仅使用reboot 资源,以及在这里给出建议的难度。
  • 我用该信息更新了原始帖子

标签: windows chef-infra packer


【解决方案1】:

没有很好的方法来全局捕获所有重新启动请求并将它们从立即设置为延迟。您的两个选项是编辑然后维护您所依赖的每个 3rd 方食谱的私有版本,并让他们设置一个全局重启标志,该标志在您的融合结束时得到处理,或者覆盖 Windows 食谱中的 reboot 资源,所以它设置一个标志,然后在最后处理该标志。

两者都需要制作自己的内部分叉,而且都不是一个很好的选择。更好的方法是询问您为什么需要这些 3rd 方食谱,以及是否可以自己编写一个更简化的流程,以您需要的方式处理重启。

【讨论】:

    【解决方案2】:

    您可以对 reboot 资源进行猴子补丁以使用无操作提供程序:

    Chef::Provider::Noop.provides(:reboot)
    Chef::Provider::Noop.provides(:windows_reboot)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 2019-07-12
      • 2019-10-08
      • 1970-01-01
      • 2014-02-14
      相关资源
      最近更新 更多