]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/motd/templates/motd.erb
Apply Aurelien's nfs patch to the dsa-check-libs copy in puppet also
[dsa-puppet.git] / modules / motd / templates / motd.erb
index 47eb95213852c551098357b93abd170ad4a55c4b..56328234f210df15ccef8e7a9a97e8a0f996d2ac 100644 (file)
@@ -1,14 +1,26 @@
+<% if @lsbmajdistrelease >= '7' -%>
+#!/bin/bash
+
+cat <<EOD
+<% end -%>
 
 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
 <URL:http://www.debian.org/devel/dmup>.
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 <%=
 def wrap(s, width=78)
-      s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n")
+  #s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n ")
+  s.split("\n").map{ |x|
+    if (x.length > width) then
+      #x.gsub!(/(.{1,#{width}}) +(?=\S)/, "\\1\n ")
+      x.gsub!(/(.{1,#{width}})( +|\Z)/, "\\1\n ")
+    end
+    x
+  }.join("\n")+"\n"
 end
 
 def markup(l)
@@ -17,61 +29,58 @@ def markup(l)
   return l
 end
 
+if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture')
+  arch = scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0]
+else
+  arch = 'unknown'
+end
+
 purp = ''
 if scope.lookupvar('site::nodeinfo').has_key?('nameinfo')
-  purp += wrap(scope.lookupvar('site::nodeinfo')['nameinfo']) + "\n\n"
+  purp += " " + wrap(scope.lookupvar('site::nodeinfo')['nameinfo']) + "\n"
 end
 
-purp += 'Welcome to ' + fqdn
+ninfo = scope.lookupvar('site::nodeinfo')
+
+extra = 'Welcome to ' + fqdn
 if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('purpose'))
   p = scope.lookupvar('site::nodeinfo')['ldap']['purpose'].clone()
-  extra = ''
+  entries = ""
 
   if p.delete('buildd')
-    purp += ", the Debian "
-    if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture')
-      purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0]
-    end
-    purp += " build daemon"
+    entries += ", the Debian #{arch} build daemon"
   end
-
-  if p.delete('porterbox')
-    purp += ", the Debian "
-    if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture')
-      purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0]
-    end
-    purp += " porterbox"
-    extra += "\n"
-    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 #{nodeinfo['ldap']['admin'][0]} for install requests,\n"
-      extra += "following the recommendations in <URL:http://dsa.debian.org/doc/install-req/>.\n"
-    end
+  if p.delete('porterbox') or classes.include?("porterbox")
+    entries += ", the Debian #{arch} porterbox"
   end
 
   if p.size() > 0
-    purp += ", used for the following services:\n"
+    entries += (entries == "") ? ", " : ".  Also"
+    entries +="used for the following services:\n"
     scope.lookupvar('site::nodeinfo')['ldap']['purpose'].sort.each do |l|
       l = markup(l)
-      purp += "\t" + l + "\n"
+      entries += "\t#{l}\n"
     end
   else
-    purp += ".\n"
+    entries += ".\n"
   end
-
-  purp += extra
+  extra += entries
 else
-  purp += ".\n"
+  extra += "."
 end
-
-purp += "\n"
+purp += " " + wrap(extra) + "\n"
 
 if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('physicalHost'))
-  purp += wrap("This virtual server runs on the physical host #{nodeinfo['ldap']['physicalHost'][0]}, " +
-               "which is hosted at #{nodeinfo['hoster']['longname']}."
+  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 #{nodeinfo['hoster']['longname']}.")
+  purp += wrap(" This server is hosted at #{ninfo['hoster']['longname']}.")
 end
 
 
@@ -98,14 +107,47 @@ unless vms.empty?
 end
 
 
+if scope.lookupvar('::cluster')
+  purp += "\n This server is a node in ganeti cluster: "
+  purp += scope.lookupvar('::cluster').to_s + ":\n"
+  purp += "\t" + scope.lookupvar('::cluster_nodes').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').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 classes.include?("porterbox")
+  purp += "\n " + wrap("Disk space on porter boxes is often limited.  Please respect your fellow porters by cleaning up after yourself and deleting schroots and source/build trees in your ~ as soon as feasible.  DSA reserves the right to recover disk space as necessary.  See <URL:http://dsa.debian.org/doc/schroot/> for a brief tutorial on using schroot.  There may be chroots for architectures other than #{arch} available, please list available chroots to check.")
+end
+
+if ninfo['not-bacula-client'] then
+  purp += "\n " + wrap("Note that this host is _NOT_ being backed up.  If you care about your data, run your own backups.")
+end
+
 if scope.lookupvar('site::nodeinfo').has_key?('footer')
-  purp += "\n" + wrap(scope.lookupvar('site::nodeinfo')['footer']) + "\n"
+  purp += "\n" + wrap(scope.lookupvar('site::nodeinfo')['footer'])
 end
+
 purp
 -%>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+<% if @lsbmajdistrelease >= '7' -%>
+EOD
+<% end -%>
 <%
 # vim:set et:
 # vim:set sts=2 ts=2: