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 90d8d6a9..5701635e 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 <Directory /> 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: '^<Directory />'
+      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: '^</Directory>'
+      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"