From ba916ed25f82587ff2d65966025139d9cc4f0334 Mon Sep 17 00:00:00 2001 From: Graham Mainwaring Date: Wed, 23 Mar 2016 15:46:00 -0400 Subject: [PATCH] Preliminary EL6 SCL Python 2.7 support --- MANIFEST.in | 1 + Makefile | 21 ++++++--------------- config/awx-httpd-443.conf | 2 ++ config/awx-httpd-80.conf | 1 + config/awx-munin.conf | 13 ++++--------- requirements/requirements.txt | 2 +- requirements/requirements_ansible.txt | 2 +- setup.py | 15 ++++++++++----- 8 files changed, 26 insertions(+), 31 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index ce0b9f5e12..f03e71b81d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -17,6 +17,7 @@ recursive-exclude awx/settings local_settings.py* include tools/scripts/request_tower_configuration.sh include tools/scripts/request_tower_configuration.ps1 include tools/scripts/ansible-tower-service +include tools/scripts/tower-python include tools/munin_monitors/* include tools/sosreport/* include COPYING diff --git a/Makefile b/Makefile index a2bf643b46..8f88ac5c50 100644 --- a/Makefile +++ b/Makefile @@ -265,30 +265,21 @@ requirements requirements_ansible requirements_dev requirements_jenkins: %: real real-requirements_ansible: virtualenv if [ "$(VENV_BASE)" ]; then \ . $(VENV_BASE)/ansible/bin/activate; \ - fi; \ - pip install -r requirements/requirements_ansible.txt; \ - if [ "$(VENV_BASE)" ]; then \ - deactivate; \ - fi + fi && \ + pip install -r requirements/requirements_ansible.txt # Install third-party requirements needed for Tower's environment. real-requirements: requirements_ansible if [ "$(VENV_BASE)" ]; then \ . $(VENV_BASE)/tower/bin/activate; \ - fi; \ + fi && \ pip install -r requirements/requirements.txt; \ - if [ "$(VENV_BASE)" ]; then \ - deactivate; \ - fi real-requirements_dev: requirements_ansible if [ "$(VENV_BASE)" ]; then \ . $(VENV_BASE)/tower/bin/activate; \ - fi; \ - pip install -r requirements/requirements_dev.txt; \ - if [ "$(VENV_BASE)" ]; then \ - deactivate; \ - fi + fi && \ + pip install -r requirements/requirements_dev.txt # Install third-party requirements needed for running unittests in jenkins real-requirements_jenkins: @@ -859,7 +850,7 @@ build: $(PYTHON) setup.py build install: - export SCL_PREFIX + export SCL_PREFIX HTTPD_SCL_PREFIX $(PYTHON) setup.py install $(SETUP_INSTALL_ARGS) # Docker Compose Development environment diff --git a/config/awx-httpd-443.conf b/config/awx-httpd-443.conf index 9f41b2f17b..95157748b2 100644 --- a/config/awx-httpd-443.conf +++ b/config/awx-httpd-443.conf @@ -1,5 +1,7 @@ NameVirtualHost *:443 WSGISocketPrefix /var/run/wsgi +WSGIPythonHome /var/lib/awx/venv/tower + # LoadModule ssl_module modules/mod_ssl.so diff --git a/config/awx-httpd-80.conf b/config/awx-httpd-80.conf index bc4a9b2e8e..f1390fead3 100644 --- a/config/awx-httpd-80.conf +++ b/config/awx-httpd-80.conf @@ -1,4 +1,5 @@ WSGISocketPrefix /var/run/wsgi +WSGIPythonHome /var/lib/awx/venv/tower diff --git a/config/awx-munin.conf b/config/awx-munin.conf index 5cfffe573e..833a6f36bf 100644 --- a/config/awx-munin.conf +++ b/config/awx-munin.conf @@ -1,17 +1,12 @@ - -Alias /munin /var/cache/munin/www - +Alias /munin /var/www/html/munin/ + Order Allow,Deny Allow from all - Options FollowSymLinks AuthUserFile /var/lib/awx/.munin_htpasswd AuthName "Munin" AuthType Basic require valid-user - - ExpiresActive On - ExpiresDefault M310 - - \ No newline at end of file + +ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph \ No newline at end of file diff --git a/requirements/requirements.txt b/requirements/requirements.txt index d74cf1819e..7277d5f5e7 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -70,7 +70,7 @@ os-client-config==1.14.0 os-diskconfig-python-novaclient-ext==0.1.3 os-networksv2-python-novaclient-ext==0.25 os-virtual-interfacesv2-python-novaclient-ext==0.19 -pbr==0.11.1 +pbr==1.8.1 oslo.config==3.3.0 oslo.i18n==3.2.0 oslo.serialization==2.2.0 diff --git a/requirements/requirements_ansible.txt b/requirements/requirements_ansible.txt index adf76989e2..7d0c4df203 100644 --- a/requirements/requirements_ansible.txt +++ b/requirements/requirements_ansible.txt @@ -34,7 +34,7 @@ os-client-config==1.14.0 os-diskconfig-python-novaclient-ext==0.1.3 os-networksv2-python-novaclient-ext==0.25 os-virtual-interfacesv2-python-novaclient-ext==0.19 -pbr==0.11.1 +pbr==1.8.1 oslo.config==3.3.0 oslo.i18n==3.2.0 oslo.serialization==2.2.0 diff --git a/setup.py b/setup.py index 2468ef5cae..2473113ec9 100755 --- a/setup.py +++ b/setup.py @@ -19,19 +19,20 @@ else: # Path prefix for when we're running under a software collection scl_prefix = os.getenv('SCL_PREFIX', '') +httpd_scl_prefix = os.getenv('HTTPD_SCL_PREFIX', scl_prefix) # Paths we'll use later -etcpath = scl_prefix + "/etc/tower" +etcpath = "/etc/tower" homedir = "/var/lib/awx" +bindir = "/usr/bin" sharedir = scl_prefix + "/usr/share/awx" -bindir = scl_prefix + "/usr/bin" docdir = scl_prefix + "/usr/share/doc/ansible-tower" munin_plugin_path = "/etc/munin/plugins/" munin_plugin_conf_path = "/etc/munin/plugin-conf.d" if os.path.exists("/etc/debian_version"): sysinit = scl_prefix + "/etc/init.d" - webconfig = scl_prefix + "/etc/apache2/conf.d" + webconfig = httpd_scl_prefix + "/etc/apache2/conf.d" shutil.copy("config/awx-munin-ubuntu.conf", "config/awx-munin.conf") # sosreport-3.1 (and newer) look in '/usr/share/sosreport/sos/plugins' # sosreport-3.0 looks in '/usr/lib/python2.7/dist-packages/sos/plugins' @@ -39,7 +40,7 @@ if os.path.exists("/etc/debian_version"): sosconfig = "/usr/share/sosreport/sos/plugins" else: sysinit = scl_prefix + "/etc/rc.d/init.d" - webconfig = scl_prefix + "/etc/httpd/conf.d" + webconfig = httpd_scl_prefix + "/etc/httpd/conf.d" shutil.copy("config/awx-munin-el.conf", "config/awx-munin.conf") # The .spec will create symlinks to support multiple versions of sosreport sosconfig = "/usr/share/sosreport/sos/plugins" @@ -139,7 +140,8 @@ setup( "tools/munin_monitors/mongo_mem", "tools/munin_monitors/mongo_ops"]), ("%s" % munin_plugin_conf_path, ["config/awx_munin_tower_jobs"]), - ("%s" % bindir, ["tools/scripts/ansible-tower-service"]), + ("%s" % bindir, ["tools/scripts/ansible-tower-service", + "tools/scripts/tower-python"]), ("%s" % sosconfig, ["tools/sosreport/tower.py"])]), options = { 'egg_info': { @@ -149,5 +151,8 @@ setup( 'dev_build': 'clean --all egg_info sdist', 'release_build': 'clean --all egg_info -b "" sdist', }, + 'build_scripts': { + 'executable': '/usr/bin/tower-python', + }, }, )