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"