X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fmotd%2Ftemplates%2Fmotd.erb;h=7f774d1777e983070ffe29a03fe245e410912974;hb=4a87e86ffd4eb2ba87e1bbc1582ed077267cb9cf;hp=7b670c1b4461203728800c250eeb143334818165;hpb=087937ebf57c423238445680a5d7a2c86445c07c;p=mirror%2Fdsa-puppet.git diff --git a/modules/motd/templates/motd.erb b/modules/motd/templates/motd.erb index 7b670c1b4..7f774d177 100644 --- a/modules/motd/templates/motd.erb +++ b/modules/motd/templates/motd.erb @@ -1,8 +1,13 @@ +<% if @lsbmajdistrelease >= '7' -%> +#!/bin/bash + +cat < 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 -(http://www.debian.org/devel/dmup) +. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -11,59 +16,144 @@ 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 += wrap(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'].has_key?('purpose')) - if nodeinfo['ldap']['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'].has_key?('architecture') - purp += nodeinfo['ldap']['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']['purpose'].include?('porterbox') + purp += " build daemon" + end + + if p.delete('porterbox') purp += ", the Debian " - if nodeinfo['ldap'].has_key?('architecture') - purp += nodeinfo['ldap']['architecture'][0] + if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture') + purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0] end - purp += " porterbox\n" - purp += "\n" - purp += "See 'dchroot -l' for a list of available chroots.\n" - if nodeinfo['ldap'].has_key?('admin') - purp += "Please contact #{nodeinfo['ldap']['admin'][0]} for install requests,\n" - purp += "following the recommendations in .\n" + 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 '.\n" + extra += "Use 'schroot-list-sessions' to list your open sessions.\n" + 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 - else + end + + if p.size() > 0 purp += ", used for the following services:\n" - nodeinfo['ldap']['purpose'].sort.each do |l| - if l =~ /\[\[(\*|-)?(.*?)\]\]/ - l = $2 - end - if l =~ /\[\[(.*?)\|(.*?)\]\]/ - l = $2 - end + 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" + purp += ".\n" end -if (nodeinfo['ldap'].has_key?('physicalHost')) - purp += "\nThis virtual server runs on the physical host #{nodeinfo['ldap']['physicalHost'][0]}.\n" +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 scope.lookupvar('::cluster').to_s != 'undefined' + purp += "\nThis server is a node in ganeti cluster: " + purp += scope.lookupvar('::cluster').to_s + ":\n" + purp += "\t" + scope.lookupvar('::cluster_nodes').to_s.split.sort.map{ |x| x.split('.')[0] }.join(", ") + ".\n" + + if @lsbmajdistrelease >= '7' + purp += "" + purp += "\tCurrently the master node is $(cat /var/lib/ganeti/ssconf_master_node).\n" + end + #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 nodeinfo.has_key?('footer') - purp += "\n" + wrap(nodeinfo['footer']) + "\n" + +if scope.lookupvar('site::nodeinfo').has_key?('footer') + purp += "\n" + wrap(scope.lookupvar('site::nodeinfo')['footer']) + "\n" end + purp -%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +<% if @lsbmajdistrelease >= '7' -%> +EOD +<% end -%> <% # vim:set et: # vim:set sts=2 ts=2: