Puppet で puppet.conf を管理するにはどうすればよいですか?

Puppet で puppet.conf を管理するにはどうすればよいですか?

私はLinuxサーバーと様々なサービスを管理するためにPuppetを使用しています。傀儡サービスそのもの。

私の人形劇クラスはこんな感じです:

class puppet {
  file { "/etc/puppet/puppet.conf":
    owner  => 0, group  => 0, mode => 0644,
    content => template("${module_name}/puppet.conf.erb"),
  }

  service { "puppet":
    name       => "puppet",
    ensure     => running,
    enable     => true, hasstatus  => true, hasrestart => true,
    require    => File["/etc/puppet/puppet/conf"]
    subscribe  => File["/etc/puppet/puppet/conf"]
  }
}

}

/etc/puppet/puppet.conf に変更が適用されると、puppet は puppet サービスを再起動する必要があることに気づき、クラッシュします。

Mar 30 17:08:23 XXXX puppet-agent[20172]: (/Stage[main]/Puppet/File[/etc/puppet/puppet.conf]/content) content changed '{md5}eeaf5dfc7d88c8d9c85e6a8cc714d702' to '{md5}ef6ff0e423f4125e24b689980df9f71d'
Mar 30 17:08:23 XXXX puppet-agent[20172]: Caught TERM; calling stop

puppet で puppet.conf を正しく更新する方法をご存知ですか?

答え1

puppet デーモンは、再起動しなくても puppet.conf ファイルの変更を自動的に認識します。 を削除するだけでsubscribe => File["/etc/puppet/puppet.conf"]service { "puppet" ... }すべてが引き続き機能します。

Puppetも実際には自分ではできないensure => running相互再起動ただし、puppet で cron が実行されていることを保証し、cronjob で puppet が実行されていることを保証すると、機能します。

答え2

1 つの解決策は、Puppet をデーモンとして実行せずに、cron から呼び出すことです。デーモンは大量のメモリを消費するため、多くの人がこの方法を好みます。

関連情報