ssh setup for weblog sync
authorPeter Palfrader <peter@palfrader.org>
Sat, 7 Sep 2019 22:06:34 +0000 (00:06 +0200)
committerPeter Palfrader <peter@palfrader.org>
Sat, 7 Sep 2019 22:07:14 +0000 (00:07 +0200)
modules/roles/manifests/weblog_destination.pp
modules/roles/manifests/weblog_provider.pp
modules/roles/templates/weblog_destination-authorized_keys.erb [deleted file]

index 662bdee..8f051be 100644 (file)
@@ -1,5 +1,7 @@
+# the sink where all provider of webserver logs ship their things to
 class roles::weblog_destination {
-       file { '/etc/ssh/userkeys/weblogsync':
-               content => template('roles/weblog_destination-authorized_keys.erb'),
-       }
+  ssh::authorized_key_collect { 'weblogsync':
+    target_user => 'weblogsync',
+    collect_tag => 'weblogsync',
+  }
 }
index b7ea0bb..0c8b048 100644 (file)
@@ -1,5 +1,12 @@
+# a provider of webserver logs
 class roles::weblog_provider {
   ssh::keygen {'weblogsync': }
+  ssh::authorized_key_add { 'weblongsync-provider::destination':
+    target_user => 'weblogsync',
+    command     => "/srv/weblogs.debian.org/bin/ssh-wrap ${::fqdn}",
+    key         => $facts['weblogsync_key'],
+    collect_tag => 'weblogsync',
+  }
 
   file { '/etc/cron.d/puppet-weblog-provider': ensure => absent, }
   concat::fragment { 'dsa-puppet-stuff--weblog-provider':
diff --git a/modules/roles/templates/weblog_destination-authorized_keys.erb b/modules/roles/templates/weblog_destination-authorized_keys.erb
deleted file mode 100644 (file)
index 60867e5..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-##
-## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE.
-##
-
-<%=
-def getweblogsynckey(host)
-    key = nil
-    begin
-        facts = YAML.load(File.open("/var/lib/puppet/yaml/facts/#{host}.yaml").read)
-        return facts.values['weblogsync_key']
-    rescue Exception => e
-    end
-    return key
-end
-
-allnodeinfo = scope.lookupvar('site::allnodeinfo')
-roles = scope.lookupvar('site::roles')
-
-mirrors = []
-roles['weblog_provider'].each do |node|
-        key = getweblogsynckey(node)
-        mirrors << { 'node' => node, 'addr' => allnodeinfo[node]['ipHostNumber'], 'key' => key}
-end
-
-lines = []
-for m in mirrors do
-    lines << '# ' + m['node']
-    if m['key'].nil?
-        lines << "# no key for node"
-    else
-        lines << "command=\"/srv/weblogs.debian.org/bin/ssh-wrap #{m['node']}\"," +
-                 'no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-user-rc,' +
-                 'from="' + m['addr'].join(',') + '" ' +
-                 m['key']
-    end
-end
-
-lines.join("\n")
-# vim:set et:
-# vim:set sts=4 ts=4:
-# vim:set shiftwidth=4:
-%>