对厨师来说是全新的......我们曾经从 ppa repo 安装 elasticsearch,但现在我想从头开始构建它(repo 不再更新),每次我更改属性/default.rb 中的版本号时
现在我有一个 bash 块,它只是拉下 gz 文件,解压缩并将其链接到正确的位置,但我不知道如何制作它,这样它就不会在我每次运行 chef-solo 时运行。
有什么建议么?
对厨师来说是全新的......我们曾经从 ppa repo 安装 elasticsearch,但现在我想从头开始构建它(repo 不再更新),每次我更改属性/default.rb 中的版本号时
现在我有一个 bash 块,它只是拉下 gz 文件,解压缩并将其链接到正确的位置,但我不知道如何制作它,这样它就不会在我每次运行 chef-solo 时运行。
有什么建议么?
我创建了一个带有版本的文本文件。逻辑很简单。
IO.read(filename)
)不同:解压缩。默认情况下,创建文件的资源具有action :nothing
并通过 unzip 通知。这样,如果版本相同,不仅解压缩不会运行,而且版本文件也将保持不变。
伪代码来说明逻辑:
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