我有一个复杂的软件堆栈,我用两个配方来管理它。
recipe[stack::foo]
recipe[stack::bar]
foo
安装在每台服务器上,而bar
仅安装在部分服务器上。bar
取决于文件和服务foo
。
配方[堆栈::foo]
file 'fooFile' do
source 'somewhere'
notifies :restart, service[barService] #bar needs to be restart first, if it is present
notifies :restart, service[fooService]
end
service 'fooService' do
action :start
end
配方[堆栈::栏]
file 'barFile' do
source 'somewhere'
end
service 'barService' do
action :start
end
是否可以建立条件依赖关系,这样如果配方bar
在节点上存在,它就会重新启动它。如果不存在,它会跳过它。
我正在尝试这样的事情
file 'fooFile' do
source 'somewhere'
notifies :restart, service[barService] if exists? "service[barService]"
notifies :restart, service[fooService]
end
答案1
在 IRC 中回答,用户 spuder 告知不鼓励重复询问。
tl;dr 使用resources()
或检查运行列表。