From 6f3ab21d621fc037dd0220e2a3bbc5f464c275db Mon Sep 17 00:00:00 2001
From: Sebastian Meyer <github@netzvieh.de>
Date: Thu, 30 Aug 2018 22:22:55 +0200
Subject: [PATCH] Allow setting APACHE_SERVER_FLAGS on Suse (#234)

SUSE reads additional FLAGS that are used on the server start. They are
read from the APACHE_SERVER_FLAGS key, so we use a2enflag/a2disflag to
set those as we do with modules.
---
 apache/flags.sls | 28 ++++++++++++++++++++++++++++
 pillar.example   |  6 ++++++
 2 files changed, 34 insertions(+)
 create mode 100644 apache/flags.sls

diff --git a/apache/flags.sls b/apache/flags.sls
new file mode 100644
index 0000000..f303b98
--- /dev/null
+++ b/apache/flags.sls
@@ -0,0 +1,28 @@
+{% from "apache/map.jinja" import apache with context %}
+
+{% if salt['grains.get']('os_family') == 'Suse' or salt['grains.get']('os') == 'SUSE' %}
+
+include:
+  - apache
+ 
+{% for flag in salt['pillar.get']('apache:flags:enabled', []) %}
+a2enflag {{ flag }}:
+  cmd.run:
+    - unless: egrep "^APACHE_SERVER_FLAGS=" /etc/sysconfig/apache2 | grep {{ flag }}
+    - require:
+      - pkg: apache
+    - watch_in:
+      - module: apache-restart
+{% endfor %}
+
+{% for module in salt['pillar.get']('apache:flags:disabled', []) %}
+a2disflag -f {{ flag }}:
+  cmd.run:
+    - onlyif: egrep "^APACHE_SERVER_FLAGS=" /etc/sysconfig/apache2 | grep {{ flag }}
+    - require:
+      - pkg: apache
+    - watch_in:
+      - module: apache-restart
+{% endfor %}
+
+{% endif %}
diff --git a/pillar.example b/pillar.example
index bfbd68e..db94b0e 100644
--- a/pillar.example
+++ b/pillar.example
@@ -291,6 +291,12 @@ apache:
     disabled:  # List modules to disable
       - rewrite
 
+  flags:
+    enabled:  # List server flags to enable
+      - SSL
+    disabled: # List server flags to disable
+      - status
+
   # KeepAlive: Whether or not to allow persistent connections (more than
   # one request per connection). Set to "Off" to deactivate.
   keepalive: 'On'
-- 
GitLab