
У меня сложный программный стек, которым я управляю с помощью двух рецептов.
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
рецепт[стек::bar]
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()
или проверьте список выполнения.