Как мне удобно запускать обновление на каком-либо ресурсе при изменении одного из многих других ресурсов (возможно, из разных типов ресурсов), которые были объявлены поблизости, в марионетке 4?Как удобно подписаться на несколько недавно объявленных ресурсов?
E.g.
# these resources
resource_type1 {...}
resource_type2 {...}
resource_type2 {...}
resource_type2 {...}
resource_type3 {...}
# should refresh this when changed
service {...}
Я знаю, что я мог бы перечислить каждый ресурс в subscribe
и использовать коллекторы ресурсов в нем; но я хотел бы, чтобы что-то более подходящее для хронически ленивого.
Я считал помощью с блоком, но это не работает:
with() || {
# these resources
resource_type1 {...}
resource_type2 {...}
resource_type2 {...}
resource_type2 {...}
resource_type3 {...}
}
~>
# will refresh this when any of them have changed
service {...}
Только последний ресурс внутри с блоком инициирует обновление.
Вы можете проверить это для себя с помощью:
with() || {
file { '/etc/test':
content => 'Change this and notice it does not trigger',
}
file { '/etc/test2':
content => 'foo',
}
}
~>
exec {'/bin/echo triggered':
refreshonly => true,
}