Bạn có thể thông báo một tài nguyên được xác định mà bạn đã khai báo ở nơi khác trong danh mục. Làm thế nào về một ví dụ?
Hệ thống CentOS, httpd được cài đặt và dừng lại. Thử nghiệm với con rối 2.7,18
$ dịch vụ httpd
httpd bị dừng
Đây là một bảng kê khai ví dụ chứa tài nguyên exec trong một loại tài nguyên được xác định, một khai báo về loại tài nguyên được xác định đó và một tài nguyên dịch vụ thông báo loại tài nguyên được xác định đó.
./notify_dained_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'],
}
Khi tôi áp dụng điều này, sự thay đổi trạng thái trong tài nguyên dịch vụ httpd của tôi sẽ kích hoạt thông báo tới tài nguyên Foo ['bar']. Thông báo này sẽ áp dụng cho bất kỳ tài nguyên dịch vụ hoặc thực thi nào được sử dụng bên trong loại tài nguyên do foo xác định.
$ 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
Có lý? Bạn chỉ cần thông báo tài nguyên mà bạn đã khai báo. Nó sẽ kích hoạt bất kỳ tài nguyên thực thi hoặc dịch vụ nào được hiển thị bên trong loại tài nguyên được xác định.