Setup ssh_fingerprints grain
diff --git a/_grains/ssh_fingerprints.py b/_grains/ssh_fingerprints.py
new file mode 100644
index 0000000..3fe5438
--- /dev/null
+++ b/_grains/ssh_fingerprints.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+import base64
+import hashlib
+
+
+def main():
+ host_keys = {
+ 'rsa': '/etc/ssh/ssh_host_rsa_key.pub',
+ 'dsa': '/etc/ssh/ssh_host_dsa_key.pub',
+ 'ecdsa': '/etc/ssh/ssh_host_ecdsa_key.pub',
+ }
+
+ ssh_fingerprints = {}
+ for key_type, filename in host_keys.iteritems():
+ try:
+ ssh_fingerprints[key_type] = _get_ssh_fingerprint(filename)
+ except IOError:
+ pass
+
+ if ssh_fingerprints:
+ return {
+ 'ssh_fingerprints': ssh_fingerprints
+ }
+ else:
+ return None
+
+
+def _get_ssh_fingerprint(filename):
+ with open(filename, 'r') as fh:
+ key = base64.b64decode(fh.read().strip().split()[1].encode('ascii'))
+ fp_plain = hashlib.md5(key).hexdigest()
+ return ':'.join(a+b for a, b in zip(fp_plain[::2], fp_plain[1::2]))
diff --git a/debian/install b/debian/install
index 97390e9..75c1f9f 100644
--- a/debian/install
+++ b/debian/install
@@ -1,2 +1,3 @@
openssh/* /usr/share/salt-formulas/env/openssh/
-metadata/service/* /usr/share/salt-formulas/reclass/service/openssh/
+metadata/service/* /usr/share/salt-formulas/reclass/service/openssh/
+_grains/* /usr/share/salt-formulas/env/_grains/