Puede notificar a un recurso definido que ha declarado en otra parte del catálogo. ¿Qué tal un ejemplo?
Sistema CentOS, httpd instalado y detenido. Probado con Puppet 2.7.18
$ service httpd status
httpd se detiene
Aquí hay un manifiesto de ejemplo que contiene un recurso ejecutivo dentro de un tipo de recurso definido, una declaración de ese tipo de recurso definido y un recurso de servicio que notifica ese 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'],
}
Cuando aplico esto, el cambio de estado en mi recurso de servicio httpd desencadena una notificación al recurso Foo ['bar']. Esta notificación se aplicará a cualquier servicio o recurso ejecutivo utilizado dentro del 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
¿Tener sentido? Simplemente notifica el recurso que declaraste. Activará cualquier recurso ejecutivo o de servicio expuesto dentro del tipo de recurso definido.