gpt4 book ai didi

ruby - Chef - 从上次运行的状态中跳过资源

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:53 24 4
gpt4 key购买 nike

对于服务器重建,我想根据之前运行的结果跳过我的 Recipe 的某些部分。

例如,我们有启动 Weblogic 服务器的资源。

weblogic_server "server_name" do 
action :start
end

这些初创公司在构建过程中需要花费大量时间。如果它在上一个构建中成功运行,我想跳过它,以避免为重建等待太多时间。像这样:

weblogic_server "server_name" do 
action :start
not_if { it_was_run_successfully_during_the_previous_run }
end

我知道最好的方法是用脚本检查 weblogic 服务器的状态,但这取决于另一个团队,我需要一个临时解决方案。

我想到了一个 JSON 格式的日志文件来引用构建的不同步骤。

例如:

{
"provisioning" : true,
"start_weblogic_servers : true,
"configuring_ohs" : false
}

在这种情况下,我会为这个日志文件提供一个模板资源,然后在运行期间更新值。然后在每次运行中我都会先检查这个文件并根据我找到的值跳过正确的部分。

还有更好的方法吗?

最佳答案

我过去所做的只是创建一个空文件,如果它存在则跳过它 (not_if do::File.exists?('/path/to/some_empty_file') end)。然后,您可以在构建成功或不成功时使用一些代码来创建或删除这些文件,我意识到这可能不是最好的方法,但从我记事起它就对我有用。

如果你真的想要,那么你可以让一些脚本检查服务器状态(比如每隔 5 分钟),然后相应地调整那个空文件(通过删除或保留它)。

关于ruby - Chef - 从上次运行的状态中跳过资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35564606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com