Você pode notificar um recurso definido que você declarou em outra parte do catálogo. Que tal um exemplo?
Sistema CentOS, httpd instalado e parado. Testado com o Puppet 2.7.18
$ service httpd status
httpd está parado
Aqui está um exemplo de manifesto 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 aplico isso, a mudança de estado no meu recurso de serviço httpd aciona uma notificação para o recurso Foo ['bar']. Esta notificação se aplicará a qualquer serviço ou recurso executivo usado dentro do tipo de recurso definido foo.
$ 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 declarou. Ele acionará todos os recursos de exec ou serviço expostos dentro do tipo de recurso definido.