Chef infra 如何确保chef脚本块不会';Don’不要每次都跑步
对厨师来说是全新的。。。我们曾经从ppa repo安装elasticsearch,但现在我想在每次更改attributes/default.rb中的版本号时从头开始构建它(repo不再更新) 现在,我有一个bash块,它只是拉下gz文件,解压它并将它链接到正确的位置,但我不知道如何使它不会每次运行chef solo时都运行Chef infra 如何确保chef脚本块不会';Don’不要每次都跑步,chef-infra,Chef Infra,对厨师来说是全新的。。。我们曾经从ppa repo安装elasticsearch,但现在我想在每次更改attributes/default.rb中的版本号时从头开始构建它(repo不再更新) 现在,我有一个bash块,它只是拉下gz文件,解压它并将它链接到正确的位置,但我不知道如何使它不会每次运行chef solo时都运行 有什么建议吗?我创建了一个包含版本的文本文件。逻辑很简单 如果文件不存在:解压缩 如果文件存在且版本(用IO.read(filename)检查)不同:解压缩 如果文件存在且
有什么建议吗?我创建了一个包含版本的文本文件。逻辑很简单
- 如果文件不存在:解压缩
- 如果文件存在且版本(用
检查)不同:解压缩IO.read(filename)
- 如果文件存在且版本相同:不执行任何操作
操作: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