Heute auch von mir etwas zum Thema Hiera. Möchte man gewisse Informationen in seinem Hieradata-Store nicht lesbar ablegen, bietet sich die Verwendung von eYaml an. Die Verschlüsselung macht besonders Sinn, wenn ein Versionierungstool zur Ablage verwendet wird.
# gem install hiera-eyaml # eyaml createkeys
Nach Installation des Backend und dem Erzeigen der Schlüssel, müssen noch die Berechtigungen angepasst werden.
# cp -a ~/keys /etc/puppet/keys # chown -R root:puppet /etc/puppet/keys # chmod 0750 /etc/puppet/keys # chmod 0640 /etc/puppet/keys/*.pem
Die Hiera-Konfiguration könnte wie folgt aussehen:
--- :backends: - eyaml - yaml :hierarchy: - secure - "%{fqdn} - defaults :yaml: :datadir: "/etc/puppet/hieradata" :eyaml: :datadir: "/etc/puppet/hieradata" :pkcs7_private_key: /etc/puppet/keys/private_key.pkcs7.pem :pkcs7_public_key: /etc/puppet/keys/public_key.pkcs7.pem
Die Datei secure wird nicht komplett verschlüsselt, sondern nur Werte, die als zu verschlüsseln gekennzeichnet werden.
- eyaml edit /etc/puppet/hieradata/secure.eyaml
- password mit Encryption Marker einschließen
- password: DEC::PKCS7[strenggeheim]!
Beim verlassen von eyaml edit wird dann die Verschlüsselung der Werte vorgenommen.
Setzt etwas weiter oben in der Kette an, schlägt aber in die selbe Kerbe: „The Blackbox Project“
http://www.slideshare.net/TomLimoncelli/the-blackbox-project-sfae
Beste Grüße
Thomas