Problem mit Puppet+Autoinstaller: wenn eine Maschine zum ersten Mal hochfaehrt, kennt der puppet master
sie nicht; man muss manuell den Zertifikatsantrag, den der agent schickt, signieren lassen. Wenn man
die autosign Option benutzt, signiert man unbesehen automatisch jedes Zert, das uebers Netz kommt, also
besser nicht. Aaaaber: wir installieren uebers Netz, warum also nicht die Keys und ein signiertes Zert
gleich mit installieren? Auf den ersten Blick deswegen, weil puppet keinerlei Unterstuetzung fuers
signieren von Keys-in-Files anbietet.
Lösung: ein Skript, das im Dateibaum des autoinstallers an passender Stelle das Keymaterial erzeugt,
daraus CSRs baut und mit dem ca-Key vom puppet master unterschreibt, mit den passenden Extensions:
nsComment = "Puppet Ruby/OpenSSL Internal Certificate"
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
keyUsage = digitalSignature, keyEncipherment
Die Keys+Zerts werden dann vom Installer auf die Maschinen kopiert.
Bleibt noch das Problem, dass Puppet seinen eigenen Zerts nicht glaubt: Wenn schon ein Zert existiert, dann
wird das neue ignoriert. Also vor der Installation auf dem master mit
puppet cert clean $diemaschinedieinstalliertwerdensoll
das alte Zert loeschen.