Puppet Agent setzt Dateirechte neu (und Grund)

Ich beschäftige mich derzeit wieder massiv mit Puppet. Heute wollte ich den in Ruby und den Puppetmaster eingebauten Webserver "WEBrick" durch den Apache ersetzen. Das klappte auch alles ganz toll, nur leider beschwerte sich das Passenger - Modul nach jedem Lauf des lokalen Puppet Agents darüber, das es das SSL Zertifikat unter /var/lib/puppet/ssl/private_keys/ nicht mehr zugreifen kann. Und in der Tat: Ich habe folgendes in dieser Reihenfolge gemacht:

  • den Apache beendet
  • chown puppet:puppet /var/lib/puppet/ssl/private_keys/servername.pem
  • chmod 640 /var/lib/puppet/ssl/private_keys/servername.pem
  • den Apache gestartet

Prüft man nun die Berechtigungen auf /var/lib/puppet/ssl/private_keys/servername.pem ist alles prima; auch die Puppet Agents können auf den Apache zugreifen und alles klappt!

Sobald man aber auf dem Puppetmaster - Server den Puppet Agent auch nur einmal startet , gehört das Zertifikat wieder root:puppet und hat den Modus 600! Lässt man den Puppet Agent mit --debug laufen, gibt dieser das auch ganz offen zu:

debug: /File[/var/lib/puppet/ssl/certs/servername.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/ssl/public_keys/servername.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys] debug: /File[/var/lib/puppet/ssl/private_keys/servername.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys] debug: /File[/var/lib/puppet/ssl/private_keys/servername.pem]/owner: owner changed 'puppet' to 'root' debug: /File[/var/lib/puppet/ssl/private_keys/servername.pem]/mode: mode changed '0640' to '0600' debug: /File[/var/lib/puppet/ssl/public_keys/servername.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys] debug: /File[/var/lib/puppet/ssl/certs/servername.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/ssl/private_keys/servername.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys]

Zum Glück kann man dieses aber mit der weniger populären Konfigurationsoption "manage_internal_file_permissions" in der Datei /etc/puppet/puppet.conf verhindern:

[agent] ... manage_internal_file_permissions = false ...

Eigentlich sehr naheliegend, aber ich habe irgendwie nicht die richtigen Buzzwords gehabt und die Recherche hat mich 1,5 Stunden gekostet ... :P

Teilen per: TwitterEmail