Ich stand vor der Frage, wie ich auf allen puppet Nodes die /etc/puppet/puppet.conf editiere. Dabei sollten zwei Eintraege sichergestellt sein:
- In der [main] Sektion soll pluginsync=true stehen
- In der [agent] Sektion soll report=true stehen
Kurz habe ich ueberlegt ob ich die Datei selbst ueber puppet verteilen soll. Dann wurde ich aber auf Augeas gestossen. Augeas ist ein Tool, das ueber sogenannte Linsen (lenses) verschiedene Konfigurationsdateien in einer baum-Struktur darstellen und bearbeiten kann. Puppet hat Augeas ueber die Ruby Language Bindings bereits integriert. Es ist also problemlos moeglich damit die puppet.conf zu editieren. Hier meine Loesung aus der Klasse:
augeas { 'puppet.conf':
context => '/files/etc/puppet/puppet.conf',
changes => [
'set main/pluginsync true',
'set agent/report true',
],
notify => Service['puppet'],
}
service { 'puppet':
ensure => 'running',
} |
augeas { 'puppet.conf':
context => '/files/etc/puppet/puppet.conf',
changes => [
'set main/pluginsync true',
'set agent/report true',
],
notify => Service['puppet'],
}
service { 'puppet':
ensure => 'running',
}
und so sieht es aus wenn es denn durchlaeuft:
notice: Augeas[puppet.conf](provider=augeas):
--- /etc/puppet/puppet.conf 2014-05-23 20:30:48.000000000 +0200
+++ /etc/puppet/puppet.conf.augnew 2014-05-23 20:30:54.000000000 +0200
@@ -8,9 +8,12 @@
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post
+pluginsync=true
[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
+[agent]
+report=true
notice: /Stage[main]/Basics/Augeas[puppet.conf]/returns: executed successfully
info: /Stage[main]/Basics/Augeas[puppet.conf]: Scheduling refresh of Service[puppet]
notice: /Stage[main]/Basics/Service[puppet]: Triggered 'refresh' from 1 events |
notice: Augeas[puppet.conf](provider=augeas):
--- /etc/puppet/puppet.conf 2014-05-23 20:30:48.000000000 +0200
+++ /etc/puppet/puppet.conf.augnew 2014-05-23 20:30:54.000000000 +0200
@@ -8,9 +8,12 @@
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post
+pluginsync=true
[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
+[agent]
+report=true
notice: /Stage[main]/Basics/Augeas[puppet.conf]/returns: executed successfully
info: /Stage[main]/Basics/Augeas[puppet.conf]: Scheduling refresh of Service[puppet]
notice: /Stage[main]/Basics/Service[puppet]: Triggered 'refresh' from 1 events
Weitere Moeglichkeiten wie immer in der entsprechenden Puppet Type Reference.