Frage puppet: Erzwingt den Neustart des Dienstes, nachdem die Konfigurationsdatei geändert wurde


Wie kann ich sicherstellen, dass, wenn eine neue Version der Konfigurationsdatei über Puppet vom Master-Repository auf einen der verwalteten Server heruntergeladen wird, der entsprechende Dienst neu gestartet wird.

typisches Szenario - sagen wir, es gibt neue Munin- oder Apache-Konfiguration. Puppet-Client entdeckt es, überschreibt lokale Dateien ... und ... - wie stellt man sicher, dass der Dienst neu gestartet / neu geladen wird?

Danke vielmals!


20
2017-07-13 21:23


Ursprung




Antworten:


Eine Alternative zur Benachrichtigung ist abonnieren:

file { "/etc/sshd_config":
    source => "....",
}

service { sshd:
    ensure => running,
    subscribe => File["/etc/sshd_config"],
}

Der Unterschied ist, dass die Beziehung vom anderen Ende beschrieben wird. Zum Beispiel könnten Sie apache subscribe zu /etc/apache/httpd.conf machen, aber Sie würden eine vhost-Datei über Apache informieren, da Ihre Apache-Klasse nicht über jeden vhost, den Sie haben, Bescheid weiß.

Eine ähnliche Situation mit zwei Enden gilt für erfordern und vorher. Es ist nur eine Frage, die in der jeweiligen Situation mehr Sinn macht.

Wie von Chad erwähnt, müssen Sie einen Musterparameter hinzufügen, wenn Sie feststellen, dass die Puppe ständig versucht, Ihren Dienst zu starten. Dies ist ein Regex, der auf die Liste der Prozesse angewendet wird. Standardmäßig stoppt Marpet einen Dienst und startet einen Neustart. Wenn Sie "hasrestart => true" hinzufügen, verwendet es den im Parameter "restart" angegebenen Befehl, um den Dienst neu zu starten.


22
2017-07-13 22:58





es scheint, ich habe etwas gefunden:

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

service { sshd:
    ensure => running
}

Wir werden sehen, wie das geht. trotzdem sind deine Gedanken zu diesem Thema willkommen.


23
2017-07-13 21:35



Ja. Sie finden die Details in der Puppet Type Reference unter "Metaparameters" (reductivablabs.com/trac/puppet/wiki/TypeReference#metaparameters) - Chad Huneycutt
Oh, und abhängig von Ihrem Betriebssystem müssen Sie möglicherweise mit den Hasstatus-, Hasrestart- und / oder Musterparametern des Servicetyps spielen. - Chad Huneycutt


(Ich weiß, das ist eine super alte Frage, aber ich dachte nur, ich würde meine zwei Cent mit einem (meiner Meinung nach) viel einfacheren Weg hinein tun.)

Fühlen Sie sich frei, auch die Pfeilnotation zu verwenden:

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

oder

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

2
2018-06-18 21:05



Im ersten Beispiel benötigen Sie keine Benachrichtigungsoption, wenn Sie den Pfeil verwenden - c4f4t0r
Hoppla. Ich habe es nur kopiert und vergessen, das herauszunehmen. - Ethan Brouwer


Dies funktioniert für 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"]
            }

}

1
2018-06-22 16:23