From 17333aed12775a439dc8d0699bf1811d7160ac55 Mon Sep 17 00:00:00 2001 From: Sam Yaple Date: Thu, 20 Aug 2015 14:49:49 +0000 Subject: [PATCH] Fix keystone for Ubuntu Due to the differences between Ubuntu and Centos around Apache2 I have had to copy both start.sh and config-external.sh to be unique files for Ubuntu so as not to affect Centos either. This can be removed when we change the way config-external works. Change-Id: I14dc11e7bb6284b897259a53acc914ae8f254d3c Partially-Implements: blueprint install-from-ubuntu --- .../keystone/templates/wsgi-keystone.conf.j2 | 9 +++++---- docker/common/keystone/config-external.sh | 11 +++++++++-- docker/common/keystone/start.sh | 17 +++++++++++++---- docker_templates/keystone/Dockerfile.j2 | 5 ++--- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/ansible/roles/keystone/templates/wsgi-keystone.conf.j2 b/ansible/roles/keystone/templates/wsgi-keystone.conf.j2 index 7287e4b467..5c46c8be68 100644 --- a/ansible/roles/keystone/templates/wsgi-keystone.conf.j2 +++ b/ansible/roles/keystone/templates/wsgi-keystone.conf.j2 @@ -1,3 +1,4 @@ +{% set apache_dir = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %} Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}:{{ keystone_public_port }} Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}:{{ keystone_admin_port }} @@ -10,8 +11,8 @@ Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['addr = 2.4> ErrorLogFormat "%{cu}t %M" - ErrorLog /var/log/httpd/keystone.log - CustomLog /var/log/httpd/keystone_access.log combined + ErrorLog /var/log/{{ apache_dir }}/keystone.log + CustomLog /var/log/{{ apache_dir }}/keystone_access.log combined @@ -23,6 +24,6 @@ Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['addr = 2.4> ErrorLogFormat "%{cu}t %M" - ErrorLog /var/log/httpd/keystone.log - CustomLog /var/log/httpd/keystone_access.log combined + ErrorLog /var/log/{{ apache_dir }}/keystone.log + CustomLog /var/log/{{ apache_dir }}/keystone_access.log combined diff --git a/docker/common/keystone/config-external.sh b/docker/common/keystone/config-external.sh index 9742e3b127..1bd4e3bb4e 100644 --- a/docker/common/keystone/config-external.sh +++ b/docker/common/keystone/config-external.sh @@ -1,8 +1,6 @@ #!/bin/bash SOURCE="/opt/kolla/keystone/keystone.conf" TARGET="/etc/keystone/keystone.conf" -SOURCE_WSGI="/opt/kolla/keystone/wsgi-keystone.conf" -TARGET_WSGI="/etc/httpd/conf.d/wsgi-keystone.conf" OWNER="keystone" if [[ -f "$SOURCE" ]]; then @@ -11,6 +9,15 @@ if [[ -f "$SOURCE" ]]; then chmod 0644 $TARGET fi +if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ + "${KOLLA_BASE_DISTRO}" == "debian" ]]; then + SOURCE_WSGI="/opt/kolla/keystone/wsgi-keystone.conf" + TARGET_WSGI="/etc/apache2/conf-enabled/wsgi-keystone.conf" +else + SOURCE_WSGI="/opt/kolla/keystone/wsgi-keystone.conf" + TARGET_WSGI="/etc/httpd/conf.d/wsgi-keystone.conf" +fi + if [[ -f "$SOURCE_WSGI" ]]; then cp $SOURCE_WSGI $TARGET_WSGI chown ${OWNER}: $TARGET_WSGI diff --git a/docker/common/keystone/start.sh b/docker/common/keystone/start.sh index a68995f81c..d964b0303c 100755 --- a/docker/common/keystone/start.sh +++ b/docker/common/keystone/start.sh @@ -2,12 +2,21 @@ set -o errexit -CMD="/usr/sbin/httpd" -ARGS="-DFOREGROUND" - -# Loading common functions. +# Loading common functions source /opt/kolla/kolla-common.sh +if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ + "${KOLLA_BASE_DISTRO}" == "debian" ]]; then + CMD="/usr/sbin/apache2" + ARGS="-DFOREGROUND" + + # Loading Apache2 ENV variables + source /etc/apache2/envvars +else + CMD="/usr/sbin/httpd" + ARGS="-DFOREGROUND" +fi + # Execute config strategy set_configs diff --git a/docker_templates/keystone/Dockerfile.j2 b/docker_templates/keystone/Dockerfile.j2 index f3b7e0e9fc..3a69691fa2 100644 --- a/docker_templates/keystone/Dockerfile.j2 +++ b/docker_templates/keystone/Dockerfile.j2 @@ -42,7 +42,6 @@ RUN yum -y install \ RUN apt-get install -y --no-install-recommends \ apache2 \ - keystone \ libapache2-mod-wsgi \ && apt-get clean @@ -54,8 +53,8 @@ RUN ln -s /keystone-* /keystone RUN cd /keystone \ && useradd --user-group keystone \ && pip install -r requirements.txt \ - && pip install /keystone \ - && mkdir /etc/keystone /var/www/cgi-bin/keystone \ + && pip install --install-option="--install-scripts=/usr/bin" /keystone \ + && mkdir -p /etc/keystone /var/www/cgi-bin/keystone /var/log/apache2 /home/keystone \ && cp -r /keystone/etc/* /etc/keystone/ \ && cp -a httpd/keystone.py /var/www/cgi-bin/keystone/admin \ && cp -a httpd/keystone.py /var/www/cgi-bin/keystone/main