puppet:構成ファイルが変更された後、サービスを強制的に再起動します


21

構成ファイルの新しいバージョンがpuppetを介してマスターリポジトリから管理対象サーバーの1つにダウンロードされた場合、関連するサービスが再起動されるようにする方法を教えてください。

典型的なシナリオ-新しいmuninまたはapache configがあるとしましょう。puppetクライアントはそれを発見し、ローカルファイルを上書きします...そして...-サービスが再起動/リロードされたことを確認する方法は?

どうもありがとう!

回答:


23

通知の代替手段はサブスクライブです:

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」パラメーターで指定されたコマンドを使用してサービスを再起動します。


22

私は何かを見つけたようです:

file { "/etc/sshd_config":
    source => "....",
    notify => Service[sshd]
}

service { sshd:
    ensure => running
}

それがどのように機能するかを見ていきます。とにかく、この問題についてのあなたの考えは大歓迎です。


1
はい。詳細は、Puppet Type Referenceの「Metaparameters」(reductivelabs.com/trac/puppet/wiki/TypeReference#metaparameters)で見つけることができます
Chad Huneycutt 09

1
ああ、お使いのOSによっては、サービスタイプのhasstatus、hasrestart、および/またはpatternパラメーターを試す必要があります。
チャドハニーカット2009

2

(これは非常に古い質問であることは知っていますが、(私の意見では)はるかに簡単な方法で2セントを入れると思っただけです)

矢印表記も自由に使用できます。

file { "/etc/sshd_config":
  source => "....",
} ~>
service { sshd:
  ensure => running
}

または

File['/etc/sshd_config'] ~> Service['sshd']

最初の例では、矢印を使用する場合、通知オプションは必要ありません
-c4f4t0r

おっとっと。コピーして、それを取り出すのを忘れました。
イーサンブルーワー

1

これはSolaris 10で機能します:)

class sun_cron_root {
    file { "/var/spool/cron/crontabs/root" :
            source => "puppet:///files/cron/sun/sun_cron_root"
            }

    service {
            "cron":
            provider => "smf",
            ensure => running,
            enable => true,
            hasrestart => true,
            subscribe => File["/var/spool/cron/crontabs/root"]
            }

}

0

同等の表記法が複数あります。

通知

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
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.