在 CHEF 中强制将食谱推到 run_list 的末尾?
Force push a recipe to the end of run_list in CHEF?
有没有办法强制将 运行 的食谱作为最后一个,无论它放在 运行 列表中的什么位置?
例如,如果我有一个食谱说 cookbook_y:post 并且扩展的 运行 列表是 x1::x2 y1::y2 cookbook_y::post z1::z2 ,我想在 运行 时间内修改扩展的 运行 列表(来自配方,很可能在 cookbook_y::post 中)并将其执行推到最后。
在排序中我想在客户端动态实现这个运行x1::x2y1::y2z1::z2cookbook_y::post
实现此目标的最佳方法是什么?
这不是 Chef 真正支持的东西。您可以像这样使用延迟通知的技巧:
package 'foo' do
action :nothing
delayed_action :install
end
但这必须在每个资源上进行,并且无法在不同的延迟通知之间进行排序(它们按预定的顺序发生),因此您最终可能会遇到 "I need this to be last-iesr than the last thing" 的问题,而我们不会没法帮你解决这个问题。
如果您要在 Chef-client 运行 的最后移动的食谱必须在收敛后执行任务,那么您可能希望查看 Chef 处理程序。
将该配方转换为处理程序库将确保仅在收敛后调用特定代码片段。您可能知道,厨师在厨师 运行.
的末尾调用处理程序
有没有办法强制将 运行 的食谱作为最后一个,无论它放在 运行 列表中的什么位置?
例如,如果我有一个食谱说 cookbook_y:post 并且扩展的 运行 列表是 x1::x2 y1::y2 cookbook_y::post z1::z2 ,我想在 运行 时间内修改扩展的 运行 列表(来自配方,很可能在 cookbook_y::post 中)并将其执行推到最后。
在排序中我想在客户端动态实现这个运行x1::x2y1::y2z1::z2cookbook_y::post
实现此目标的最佳方法是什么?
这不是 Chef 真正支持的东西。您可以像这样使用延迟通知的技巧:
package 'foo' do
action :nothing
delayed_action :install
end
但这必须在每个资源上进行,并且无法在不同的延迟通知之间进行排序(它们按预定的顺序发生),因此您最终可能会遇到 "I need this to be last-iesr than the last thing" 的问题,而我们不会没法帮你解决这个问题。
如果您要在 Chef-client 运行 的最后移动的食谱必须在收敛后执行任务,那么您可能希望查看 Chef 处理程序。
将该配方转换为处理程序库将确保仅在收敛后调用特定代码片段。您可能知道,厨师在厨师 运行.
的末尾调用处理程序