X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fmotd%2Ftemplates%2Fmotd.erb;h=6919edd0d2da10e5d3929f028dd7b02b3c828f91;hb=1d007e1bac457d1fba22efc32bfef86ac3a5319d;hp=b186dc9172e7208313c5323f1e1733077bd0c00d;hpb=86bf9c4bc0efb54a2d9beed89508a1e415f4fa98;p=mirror%2Fdsa-puppet.git diff --git a/modules/motd/templates/motd.erb b/modules/motd/templates/motd.erb index b186dc917..6919edd0d 100644 --- a/modules/motd/templates/motd.erb +++ b/modules/motd/templates/motd.erb @@ -1,55 +1,154 @@ -This device is for authorized users only. All traffic on this device -is monitored and will be used as evidence for prosecutions. - -** IMPORTANT WARNING ** - -Please read: +<% if @lsbdistcodename == 'wheezy' -%> +#!/bin/bash -http://lists.debian.org/debian-devel-announce/2003/debian-devel-announce-200312/msg00001.html +cat < -before doing anything on these machines - especially the "What to do -when you can login" section. +This device is for authorized users only. All traffic on this device +is monitored and will be used as evidence for prosecutions. By using +this machine you agree to abide by the Debian Machines Usage Policies +. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <%= +def wrap(s, width=78) + s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n") +end + +def markup(l) + l = l.gsub(/\[\[(.*?)\|(.*?)\]\]/, '\2') + l = l.gsub(/\[\[(\*|-)?(.*?)\]\]/, '\2') + return l +end + purp = '' -if nodeinfo.has_key?('nameinfo') - purp += nodeinfo['nameinfo'] + "\n\n" +if scope.lookupvar('site::nodeinfo').has_key?('nameinfo') + purp += wrap(scope.lookupvar('site::nodeinfo')['nameinfo']) + "\n\n" end +ninfo = scope.lookupvar('site::nodeinfo') + purp += 'Welcome to ' + fqdn -if (nodeinfo['ldap'].at(0)) and (nodeinfo['ldap'][0].has_key?('purpose')) - if nodeinfo['ldap'][0]['purpose'].include?('buildd') +if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('purpose')) + p = scope.lookupvar('site::nodeinfo')['ldap']['purpose'].clone() + extra = '' + + if p.delete('buildd') purp += ", the Debian " - if nodeinfo['ldap'][0].has_key?('architecture') - purp += nodeinfo['ldap'][0]['architecture'][0] + if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture') + purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0] end - purp += " build daemon\n" - elsif nodeinfo['ldap'][0]['purpose'].include?('porterbox') + purp += " build daemon" + end + + if p.delete('porterbox') purp += ", the Debian " - if nodeinfo['ldap'][0].has_key?('architecture') - purp += nodeinfo['ldap'][0]['architecture'][0] + if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture') + purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0] end - purp += " porterbox\n" - else - purp += ", used for the following services:\n" - nodeinfo['ldap'][0]['purpose'].sort.each do |l| - if l =~ /\[\[(\*|-)?(.*?)\]\]/ - l = $2 - end - if l =~ /\[\[(.*?)\|(.*?)\]\]/ - l = $2 + purp += " porterbox" + extra += "\n" + if classes.include?("porterbox") + extra += "See 'schroot -l' for a list of available chroots. Start new sessions\n" + extra += "with 'schroot --begin-session -c ', run commands in sessions using\n" + extra += "'schroot --run-session -c [-- command]', and tear down sessions\n" + extra += "using 'schroot --end-session -c '. You can run a limited set of\n" + extra += "privileged commands, for instance some of apt-get, using\n" + extra += "'dd-schroot-cmd -c '." + else + extra += "See 'dchroot -l' or 'schroot -l' for a list of available chroots.\n" + if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('admin') + extra += "Please contact #{ninfo['ldap']['admin'][0]} for install requests,\n" + extra += "following the recommendations in .\n" end + end + end + + if p.size() > 0 + purp += ", used for the following services:\n" + scope.lookupvar('site::nodeinfo')['ldap']['purpose'].sort.each do |l| + l = markup(l) purp += "\t" + l + "\n" end + else + purp += ".\n" + end + + purp += extra +else + purp += ".\n" +end + +purp += "\n" + +if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('physicalHost')) + if ninfo['ldap']['physicalHost'][0] =~ /ganeti/ + phys_host = 'cluster' + else + phys_host = 'physical host' + end + purp += wrap("This virtual server runs on the #{phys_host} #{ninfo['ldap']['physicalHost'][0]}, " + + "which is hosted at #{ninfo['hoster']['longname']}." + ) +elsif scope.lookupvar('site::nodeinfo')['hoster']['name'] + purp += wrap("This server is hosted at #{ninfo['hoster']['longname']}.") +end + + +vms = [] +scope.lookupvar('site::allnodeinfo').keys.sort.each do |node| + if scope.lookupvar('site::allnodeinfo')[node]['physicalHost'] and scope.lookupvar('site::allnodeinfo')[node]['physicalHost'].include?(fqdn) + vms << node + end +end +unless vms.empty? + purp += "\nThe following virtual machines run on this system:\n" + vms.each do |node| + purp += "\t- #{node}" + if scope.lookupvar('site::allnodeinfo')[node]['purpose'] + purp += ":\n" + scope.lookupvar('site::allnodeinfo')[node]['purpose'].sort.each do |l| + l = markup(l) + purp += "\t " + l + "\n" + end + else + purp += "\n" + end end end -if nodeinfo.has_key?('footer') - purp += "\n" + nodeinfo['footer'] + "\n" + +if scope.lookupvar('::cluster').to_s != 'undefined' + purp += "\nThis server is a node in ganeti cluster: " + purp += scope.lookupvar('::cluster').to_s + ".\n" + nodes = scope.lookupvar('::cluster_nodes').to_s.split.sort + nodes.each do |node| + purp += "\t" + node + "\n" + end + nodes.reject{|node| node.eql?(fqdn)}.each do |node| + purp += "\t" + node + "\n" + scope.lookupvar('site::allnodeinfo')[node]['ipHostNumber'].each do |ip| + purp += "\t\t" + ip + "\n" + end + end end + + +if scope.lookupvar('site::nodeinfo').has_key?('footer') + purp += "\n" + wrap(scope.lookupvar('site::nodeinfo')['footer']) + "\n" +end + purp -%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +<% if @lsbdistcodename == 'wheezy' -%> +EOD +<% end -%> +<% +# vim:set et: +# vim:set sts=2 ts=2: +# vim:set shiftwidth=2: +-%>