diff --git a/meta/main.yml b/meta/main.yml index 697d4adf..a0bbd059 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -23,6 +23,14 @@ galaxy_info: - name: Ubuntu versions: - xenial + - name: EL + versions: + - 7 + - name: opensuse + versions: + - 42.1 + - 42.2 + - 42.3 categories: - cloud - python diff --git a/tasks/horizon_apache.yml b/tasks/horizon_apache.yml index 4c32c452..9d3b443a 100644 --- a/tasks/horizon_apache.yml +++ b/tasks/horizon_apache.yml @@ -28,14 +28,9 @@ state: "{{ item.state }}" ignore_configcheck: yes with_items: - - { state: present, name: wsgi } - - { state: present, name: ssl } - - { state: absent, name: mpm_event } - - { state: present, name: mpm_worker } - - { state: present, name: rewrite } - - { state: present, name: headers } + - "{{ horizon_apache_modules }}" when: - - ansible_pkg_mgr == 'apt' + - ansible_pkg_mgr in ['apt', 'zypper'] notify: Restart apache2 - name: Drop apache2 configs @@ -54,6 +49,37 @@ with_items: "{{ horizon_apache_default_sites }}" notify: Restart apache2 +# NOTE(hwoarang) Default openSUSE apache configuration ships +# with a configuration in /etc/apache2/httpd.conf +# so we need to get rid of it to allow all the symlinks in the +# root filesystem that horizon requires +# TODO: Can this be improved somehow? +- block: + - name: Tag beginning of main apache2 directory configuration (SUSE) + lineinfile: + dest: "{{ horizon_apache_conf }}" + insertbefore: '^' + line: "# BEGIN ANSIBLE MANAGED BLOCK" + state: present + notify: Restart apache2 + + - name: Tag end of main apache2 directory configuration (SUSE) + lineinfile: + dest: "{{ horizon_apache_conf }}" + insertafter: '^' + line: "# END ANSIBLE MANAGED BLOCK" + state: present + notify: Restart apache2 + + - name: Remove default apache2 configuration for root directory (SUSE) + blockinfile: + dest: "{{ horizon_apache_conf }}" + marker: "# {mark} ANSIBLE MANAGED BLOCK" + content: "" + notify: Restart apache2 + + when: ansible_pkg_mgr == 'zypper' + - name: Enable Horizon Site file: src: "{{ horizon_apache_site_available }}" diff --git a/vars/debian.yml b/vars/debian.yml index 232e0433..2bd0963c 100644 --- a/vars/debian.yml +++ b/vars/debian.yml @@ -46,3 +46,16 @@ horizon_apache_configs: horizon_apache_default_sites: - "/etc/apache2/sites-enabled/000-default.conf" +horizon_apache_modules: + - name: "wsgi" + state: "present" + - name: "ssl" + state: "present" + - name: "mpm_event" + state: "absent" + - name: "mpm_worker" + state: "present" + - name: "rewrite" + state: "present" + - name: "headers" + state: "present" diff --git a/vars/suse-42.yml b/vars/suse-42.yml new file mode 100644 index 00000000..6d95fcd2 --- /dev/null +++ b/vars/suse-42.yml @@ -0,0 +1,59 @@ +--- +# Copyright 2014, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +horizon_system_service_name: apache2 + +horizon_distro_packages: + - cronie + - cronie-anacron + - gettext + - git-core + - apache2 + - apache2-utils + - libxslt-devel + - apache2-mod_wsgi + - python-MySQL-python + - openssl + - libopenssl-devel + - which + +horizon_apache_conf: "/etc/apache2/httpd.conf" +horizon_apache_default_log_folder: "/var/log/apache2" +horizon_apache_default_log_owner: "root" +horizon_apache_default_log_grp: "root" +horizon_apache_security_conf: "{{ horizon_apache_conf }}" + +horizon_apache_configs: + - { src: "horizon_apache_ports.conf.j2", dest: "/etc/apache2/conf.d/ports.conf", owner: "root", group: "root" } + - { src: "openstack_dashboard.conf.j2", dest: "/etc/apache2/conf.d/openstack-dashboard.conf", owner: "root", group: "root" } + +horizon_apache_default_sites: + - "/etc/apache2/conf.d/gitweb.conf" + +horizon_apache_modules: + - name: "authz_host" + state: "present" + - name: "access_compat" + state: "present" + - name: "version" + state: "present" + - name: "ssl" + state: "present" + - name: "wsgi" + state: "present" + - name: "rewrite" + state: "present" + - name: "headers" + state: "present"