gpt4 book ai didi

chef-infra - 如何确保每次运行 Chef-solo 时都不会运行 Chef 脚本 block

转载 作者:行者123 更新时间:2023-12-04 05:13:03 26 4
gpt4 key购买 nike

对厨师来说完全陌生......我们曾经从 ppa 存储库安装 elasticsearch 但现在我想从头开始构建它(存储库不再更新)每次我更改我的 attributes/default.rb 中的版本号

现在我有一个 bash 块,它只是拉下 gz 文件,解压缩它并将其链接到正确的位置,但我不知道如何制作它,这样它就不会在我每次运行 Chef-solo 时运行。

有什么建议吗?

最佳答案

我创建了一个包含版本的文本文件。逻辑很简单。

  • 如果文件不存在:解压。
  • 如果文件存在并且版本(用 IO.read(filename) 检查)不同:解压缩。
  • 如果文件存在且版本相同:什么都不做。

  • 默认情况下,创建文件的资源有 action :nothing并通过解压缩通知。如果版本相同,这样不仅解压缩不会运行,而且版本文件也将保持不变。

    伪代码来说明逻辑:
    unzip "resource_name" do
    not_if { ::File.exists?( filename ) and node[:version]==IO.read( filename ).strip }
    notifies :create, "file[#{filename}]"
    end

    file filename do
    action :nothing
    content node[:version]
    end

    关于chef-infra - 如何确保每次运行 Chef-solo 时都不会运行 Chef 脚本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654265/

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