From 300826e6ad0bae3218738e778f35d916b281f6c0 Mon Sep 17 00:00:00 2001
From: Jeremy Stanley <fungi@yuggoth.org>
Date: Wed, 20 Feb 2013 04:12:13 +0000
Subject: [PATCH] Disable logging to /dev/xconsole.

The default rsyslog configuration on Ubuntu attempts to open
/dev/xconsole if it exists, and logs an error if it doesn't (which
it normally won't on a headless server anyway). This change installs
a modified configuration with the xconsole-related lines commented
out. This configuration file is valid at least on Ubuntu Oneiric,
Precise and Quantal, which covers the releases we currently use.

Change-Id: I68594d489ab50ef25d351162b9dcb50ca003c409
Reviewed-on: https://review.openstack.org/22394
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
---
 .../files/rsyslog.d_50-default.conf           | 69 +++++++++++++++++++
 modules/openstack_project/manifests/server.pp | 18 +++++
 2 files changed, 87 insertions(+)
 create mode 100644 modules/openstack_project/files/rsyslog.d_50-default.conf

diff --git a/modules/openstack_project/files/rsyslog.d_50-default.conf b/modules/openstack_project/files/rsyslog.d_50-default.conf
new file mode 100644
index 0000000000..35e348ab1b
--- /dev/null
+++ b/modules/openstack_project/files/rsyslog.d_50-default.conf
@@ -0,0 +1,69 @@
+#  Default rules for rsyslog.
+#
+#			For more information see rsyslog.conf(5) and /etc/rsyslog.conf
+
+#
+# First some standard log files.  Log by facility.
+#
+auth,authpriv.*			/var/log/auth.log
+*.*;auth,authpriv.none		-/var/log/syslog
+#cron.*				/var/log/cron.log
+#daemon.*			-/var/log/daemon.log
+kern.*				-/var/log/kern.log
+#lpr.*				-/var/log/lpr.log
+mail.*				-/var/log/mail.log
+#user.*				-/var/log/user.log
+
+#
+# Logging for the mail system.  Split it up so that
+# it is easy to write scripts to parse these files.
+#
+#mail.info			-/var/log/mail.info
+#mail.warn			-/var/log/mail.warn
+mail.err			/var/log/mail.err
+
+#
+# Logging for INN news system.
+#
+news.crit			/var/log/news/news.crit
+news.err			/var/log/news/news.err
+news.notice			-/var/log/news/news.notice
+
+#
+# Some "catch-all" log files.
+#
+#*.=debug;\
+#	auth,authpriv.none;\
+#	news.none;mail.none	-/var/log/debug
+#*.=info;*.=notice;*.=warn;\
+#	auth,authpriv.none;\
+#	cron,daemon.none;\
+#	mail,news.none		-/var/log/messages
+
+#
+# Emergencies are sent to everybody logged in.
+#
+*.emerg                                :omusrmsg:*
+
+#
+# I like to have messages displayed on the console, but only on a virtual
+# console I usually leave idle.
+#
+#daemon,mail.*;\
+#	news.=crit;news.=err;news.=notice;\
+#	*.=debug;*.=info;\
+#	*.=notice;*.=warn	/dev/tty8
+
+# The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,
+# you must invoke `xconsole' with the `-file' option:
+#
+#    $ xconsole -file /dev/xconsole [...]
+#
+# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
+#      busy site..
+#
+# Commenting out since we don't install xconsoles on headless servers.
+#daemon.*;mail.*;\
+#	news.err;\
+#	*.=debug;*.=info;\
+#	*.=notice;*.=warn	|/dev/xconsole
diff --git a/modules/openstack_project/manifests/server.pp b/modules/openstack_project/manifests/server.pp
index 1fcf520248..b2ba31f8f9 100644
--- a/modules/openstack_project/manifests/server.pp
+++ b/modules/openstack_project/manifests/server.pp
@@ -17,4 +17,22 @@ class openstack_project::server (
   class { 'exim':
     sysadmin => $sysadmins,
   }
+
+  # Custom rsyslog config to disable /dev/xconsole noise on Ubuntu servers
+  if $::operatingsystem == 'Ubuntu' {
+    file { '/etc/rsyslog.d/50-default.conf':
+      ensure  => present,
+      owner   => 'root',
+      group   => 'root',
+      mode    => '0644',
+      source  =>
+        'puppet:///modules/openstack_project/rsyslog.d_50-default.conf',
+      replace => true,
+    }
+    service { 'rsyslog':
+      ensure      => running,
+      hasrestart  => true,
+      subscribe   => File['/etc/rsyslog.d/50-default.conf'],
+    }
+  }
 }