From f0b1546653d21581b632ed100147c17696b32bd7 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Mon, 11 Aug 2014 15:09:17 -0400 Subject: [PATCH] Add sosreport support to Tower --- MANIFEST.in | 1 + setup.py | 9 +++++++++ tools/sosreport/tower-sos2.py | 36 ++++++++++++++++++++++++++++++++++ tools/sosreport/tower-sos3.py | 37 +++++++++++++++++++++++++++++++++++ 4 files changed, 83 insertions(+) create mode 100644 tools/sosreport/tower-sos2.py create mode 100644 tools/sosreport/tower-sos3.py diff --git a/MANIFEST.in b/MANIFEST.in index 184159d69f..504417d9ce 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -21,6 +21,7 @@ include awx/ui/static/js/config.js include tools/scripts/request_tower_configuration.sh include tools/scripts/ansible-tower include tools/munin_monitors/* +include tools/sosreport/* include COPYING prune awx/public prune awx/projects diff --git a/setup.py b/setup.py index c9016f66ca..228d50b844 100755 --- a/setup.py +++ b/setup.py @@ -22,10 +22,18 @@ munin_plugin_conf_path = "/etc/munin/plugin-conf.d" if os.path.exists("/etc/debian_version"): sysinit = "/etc/init.d" webconfig = "/etc/apache2/conf.d" + sosconfig = "/usr/share/sosreport/sos/plugins" + sosfile = "tower-sos3.py shutil.copy("config/awx-munin-ubuntu.conf", "config/awx-munin.conf") else: sysinit = "/etc/rc.d/init.d" webconfig = "/etc/httpd/conf.d" + if os.path.exists("/usr/lib/python2.7/site-packages"): + sosconfig = "/usr/lib/python2.7/site-packages/sos/plugins" + sosfile = "tower-sos3.py + else: + sosconfig = "/usr/lib/python2.6/site-packages/sos/plugins" + sosfile = "tower-sos2.py" shutil.copy("config/awx-munin-el.conf", "config/awx-munin.conf") ##################################################################### @@ -214,6 +222,7 @@ setup( "tools/munin_monitors/taskmanager_alive"]), ("%s" % munin_plugin_conf_path, ["config/awx_munin_tower_jobs"]), ("%s" % sysinit, ["tools/scripts/ansible-tower"]), + ("%s" % sosconfig, ["tools/sosreport/%s" % sosfile]), ] ), options = { diff --git a/tools/sosreport/tower-sos2.py b/tools/sosreport/tower-sos2.py new file mode 100644 index 0000000000..72c346ec09 --- /dev/null +++ b/tools/sosreport/tower-sos2.py @@ -0,0 +1,36 @@ +# Copyright (c) 2014 Ansible, Inc. +# All Rights Reserved. + +import sos.plugintools + +class tower(sos.plugintools.PluginBase): + '''Tower SOS plugin''' + + def setup(self): + + commands = [ + "ansible --version", # ansible core version + "awx-manage --version", # tower version + "supervisorctl status", # tower process status + "tree -d /var/lib/awx", # show me the dirs + "ls -ll /var/lib/awx", # check permissions + "ls -ll /etc/awx" + ] + + dirs = [ + "/etc/awx/", + "/var/log/supervisor/", + "/var/log/syslog", + "/var/log/udev", + "/var/log/kern*", + "/var/log/dist-upgrade", + "/var/log/installer", + "/var/log/unattended-upgrades", + "/var/log/apport.log" + ] + + for path in dirs: + self.addCopySpec(path) + + for command in commands: + self.collectExtOutput(command) diff --git a/tools/sosreport/tower-sos3.py b/tools/sosreport/tower-sos3.py new file mode 100644 index 0000000000..5da4e1dbf2 --- /dev/null +++ b/tools/sosreport/tower-sos3.py @@ -0,0 +1,37 @@ +# Copyright (c) 2014 Ansible, Inc. +# All Rights Reserved. + +from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin + +class tower(Plugin, RedHatPlugin, UbuntuPlugin): + '''Tower SOS plugin''' + plugin_name = "tower" + + def setup(self): + + commands = [ + "ansible --version", # ansible core version + "awx-manage --version", # tower version + "supervisorctl status", # tower process status + "tree -d /var/lib/awx", # show me the dirs + "ls -ll /var/lib/awx", # check permissions + "ls -ll /etc/awx" + ] + + dirs = [ + "/etc/awx/", + "/var/log/supervisor/", + "/var/log/syslog", + "/var/log/udev", + "/var/log/kern*", + "/var/log/dist-upgrade", + "/var/log/installer", + "/var/log/unattended-upgrades", + "/var/log/apport.log" + ] + + for path in dirs: + self.add_copy_spec(path) + + for command in commands: + self.collect_ext_output(command)