Você pode notificar um recurso definido que você declarou em outro lugar no catálogo. Que tal um exemplo?
Sistema CentOS, httpd instalado e parado. Testado com Puppet 2.7.18
$ status do serviço httpd
o httpd está parado
Aqui está um manifesto de exemplo que contém um recurso exec dentro de um tipo de recurso definido, uma declaração desse tipo de recurso definido e um recurso de serviço que notifica esse tipo de recurso definido.
./ notify_defined_types.pp
define foo(){
exec { "${name}_exec":
command => "echo hello ${name}",
path => '/bin:/usr/bin',
refreshonly => true,
logoutput => true,
}
}
foo { 'bar': }
service { 'httpd':
ensure => running,
notify => Foo['bar'],
}
Quando eu aplico isso, a mudança de estado em meu recurso de serviço httpd aciona uma notificação para o recurso Foo ['bar']. Esta notificação será aplicada a qualquer serviço ou recursos exec usados dentro do tipo de recurso foo definido.
$ puppet apply notify_defined_types.pp
notice: /Stage[main]//Service[httpd]/ensure: ensure changed 'stopped' to 'running'
notice: /Stage[main]//Foo[bar]/Exec[bar_exec]/returns: hello bar
notice: /Stage[main]//Foo[bar]/Exec[bar_exec]: Triggered 'refresh' from 1 events
notice: Finished catalog run in 0.51 seconds
$ puppet apply notify_defined_types.pp
notice: Finished catalog run in 0.38 seconds
Faz sentido? Você simplesmente notifica o recurso que você declarou. Isso acionará qualquer exec ou recursos de serviço expostos dentro do tipo de recurso definido.