我正在部署一个软件包,该软件包要求每次解压缩目录时都在指定的目录中创建模板。
一个remote_file
通知我的解压缩操作,该解压缩操作通知模板资源,模板资源又通知其他资源。此通知链按预期工作。
以下是我的模板资源:
template 'C:\\Program Files\\MyProgram\\program.yml' do
source "my_program-#{node['program']['version']}.yml.erb"
action :nothing
notifies :run, 'powershell_script[install-program]', :immediately
end
我的问题:如果对源模板进行更改,是否有办法执行template
资源?现在,只有在我的解压缩操作通知(由于我的template
通知)时,它才会执行action :nothing
资源。
但是,最好有一种方法可以告诉它模板本身是否已更改。也许是某种not_if
或only_if
语句?
答案 0 :(得分:0)
对我来说,如果将资源定义在同一配方中,则可以避免所有通知链接。
回到您的问题,听起来action :create
(这是默认操作)可以解决问题。来自template resource documentation
action:创建
创建一个文件。如果文件已经存在(但不匹配),请更新该文件以使其匹配。