回答:
通知の代替手段はサブスクライブです:
file { "/etc/sshd_config":
source => "....",
}
service { sshd:
ensure => running,
subscribe => File["/etc/sshd_config"],
}
違いは、関係が相手側から記述されることです。たとえば、Apacheを/etc/apache/httpd.confにサブスクライブさせますが、Apacheクラスは所有するすべてのVhostを認識しないため、vhostファイルにapacheを通知させます。
同様のデュアルエンドの状況は、requireとbeforeに適用されます。それは特定の状況でより理にかなっている問題です。
Chadが述べたように、人形が絶えずサービスを開始しようとしていることがわかった場合は、プロセスのリストに対して適用する正規表現であるパターンパラメーターを追加する必要があります。デフォルトでは、パペットは停止してからサービスを再起動します。「hasrestart => true」を追加すると、「restart」パラメーターで指定されたコマンドを使用してサービスを再起動します。
私は何かを見つけたようです:
file { "/etc/sshd_config":
source => "....",
notify => Service[sshd]
}
service { sshd:
ensure => running
}
それがどのように機能するかを見ていきます。とにかく、この問題についてのあなたの考えは大歓迎です。
同等の表記法が複数あります。
通知:
file { '/etc/sshd_config':
notify => Service[sshd],
}
service { sshd:
ensure => running
}
購読:
file { '/etc/sshd_config':
...
}
service { sshd:
ensure => running,
subscribe => File['/etc/sshd_config'],
}
矢印表記:
File['/etc/sshd_config'] ~> Service['sshd']
宣言の連鎖
file { '/etc/sshd_config':
...
}
~> service { sshd:
ensure => running,
}
のreload
代わりにトリガーする場合はrestart
、サービス宣言を調整します。
service { sshd:
ensure => running,
restart => 'pkill -HUP sshd', # if service support such reload
}