From 16888bd92780f844aca070e0cf1f2d3db102d656 Mon Sep 17 00:00:00 2001 From: Dominik Menzi Date: Thu, 24 Mar 2016 15:22:23 +0100 Subject: [PATCH] Add support for Ubuntu precise --- apache/config.sls | 2 +- apache/files/Debian/apache-2.2.config.jinja | 237 ++++++++++++++++++ apache/files/Debian/envvars-2.2.jinja | 39 +++ .../{envvars.jinja => envvars-2.4.jinja} | 0 apache/files/Debian/ports-2.2.conf.jinja | 30 +++ apache/map.jinja | 6 + apache/osfingermap.yaml | 2 + 7 files changed, 315 insertions(+), 1 deletion(-) create mode 100644 apache/files/Debian/apache-2.2.config.jinja create mode 100644 apache/files/Debian/envvars-2.2.jinja rename apache/files/Debian/{envvars.jinja => envvars-2.4.jinja} (100%) create mode 100644 apache/files/Debian/ports-2.2.conf.jinja diff --git a/apache/config.sls b/apache/config.sls index ed1f2ae..2613ca7 100644 --- a/apache/config.sls +++ b/apache/config.sls @@ -27,7 +27,7 @@ include: file.managed: - template: jinja - source: - - salt://apache/files/Debian/envvars.jinja + - salt://apache/files/{{ salt['grains.get']('os_family') }}/envvars-{{ apache.version }}.jinja - require: - pkg: apache - watch_in: diff --git a/apache/files/Debian/apache-2.2.config.jinja b/apache/files/Debian/apache-2.2.config.jinja new file mode 100644 index 0000000..6895993 --- /dev/null +++ b/apache/files/Debian/apache-2.2.config.jinja @@ -0,0 +1,237 @@ +# +# Based upon the NCSA server configuration files originally by Rob McCool. +# +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See http://httpd.apache.org/docs/2.2/ for detailed information about +# the directives. +# +# Do NOT simply read the instructions in here without understanding +# what they do. They're here only as hints or reminders. If you are unsure +# consult the online docs. You have been warned. +# +# The configuration directives are grouped into three basic sections: +# 1. Directives that control the operation of the Apache server process as a +# whole (the 'global environment'). +# 2. Directives that define the parameters of the 'main' or 'default' server, +# which responds to requests that aren't handled by a virtual host. +# These directives also provide default values for the settings +# of all virtual hosts. +# 3. Settings for virtual hosts, which allow Web requests to be sent to +# different IP addresses or hostnames and have them handled by the +# same Apache server process. +# +# Configuration and logfile names: If the filenames you specify for many +# of the server's control files begin with "/" (or "drive:/" for Win32), the +# server will use that explicit path. If the filenames do *not* begin +# with "/", the value of ServerRoot is prepended -- so "foo.log" +# with ServerRoot set to "/etc/apache2" will be interpreted by the +# server as "/etc/apache2/foo.log". +# + +### Section 1: Global Environment +# +# The directives in this section affect the overall operation of Apache, +# such as the number of concurrent requests it can handle or where it +# can find its configuration files. +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the LockFile documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/etc/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# +LockFile ${APACHE_LOCK_DIR}/accept.lock + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# This needs to be set in /etc/apache2/envvars +# +PidFile ${APACHE_PID_FILE} + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive {{ salt['pillar.get']('apache:keepalive', 'On') }} + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + +## +## Server-Pool Size Regulation (MPM specific) +## + +# prefork MPM +# StartServers: number of server processes to start +# MinSpareServers: minimum number of server processes which are kept spare +# MaxSpareServers: maximum number of server processes which are kept spare +# MaxClients: maximum number of server processes allowed to start +# MaxRequestsPerChild: maximum number of requests a server process serves + + StartServers 5 + MinSpareServers 5 + MaxSpareServers 10 + MaxClients 150 + MaxRequestsPerChild 0 + + +# worker MPM +# StartServers: initial number of server processes to start +# MinSpareThreads: minimum number of worker threads which are kept spare +# MaxSpareThreads: maximum number of worker threads which are kept spare +# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a +# graceful restart. ThreadLimit can only be changed by stopping +# and starting Apache. +# ThreadsPerChild: constant number of worker threads in each server process +# MaxClients: maximum number of simultaneous client connections +# MaxRequestsPerChild: maximum number of requests a server process serves + + StartServers 2 + MinSpareThreads 25 + MaxSpareThreads 75 + ThreadLimit 64 + ThreadsPerChild 25 + MaxClients 150 + MaxRequestsPerChild 0 + + +# event MPM +# StartServers: initial number of server processes to start +# MinSpareThreads: minimum number of worker threads which are kept spare +# MaxSpareThreads: maximum number of worker threads which are kept spare +# ThreadsPerChild: constant number of worker threads in each server process +# MaxClients: maximum number of simultaneous client connections +# MaxRequestsPerChild: maximum number of requests a server process serves + + StartServers 2 + MinSpareThreads 25 + MaxSpareThreads 75 + ThreadLimit 64 + ThreadsPerChild 25 + MaxClients 150 + MaxRequestsPerChild 0 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} + +# +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# + +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Order allow,deny + Deny from all + Satisfy all + + +# +# DefaultType is the default MIME type the server will use for a document +# if it cannot otherwise determine one, such as from filename extensions. +# If your server contains mostly text or HTML documents, "text/plain" is +# a good value. If most of your content is binary, such as applications +# or images, you may want to use "application/octet-stream" instead to +# keep browsers from trying to display binary files as though they are +# text. +# +# It is also possible to omit any default MIME type and let the +# client's browser guess an appropriate action instead. Typically the +# browser will decide based on the file's extension then. In cases +# where no good assumption can be made, letting the default MIME type +# unset is suggested instead of forcing the browser to accept +# incorrect metadata. +# +DefaultType None + + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog ${APACHE_LOG_DIR}/error.log + +# +# LogLevel: Control the number of messages logged to the error_log. +# Possible values include: debug, info, notice, warn, error, crit, +# alert, emerg. +# +LogLevel warn + +# Include module configuration: +Include mods-enabled/*.load +Include mods-enabled/*.conf + +# Include all the user configurations: +Include httpd.conf + +# Include ports listing +Include ports.conf + +# +# The following directives define some format nicknames for use with +# a CustomLog directive (see below). +# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i +# +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# Include of directories ignores editors' and dpkg's backup files, +# see README.Debian for details. + +# Include generic snippets of statements +Include conf.d/ + +# Include the virtual host configurations: +Include sites-enabled/ diff --git a/apache/files/Debian/envvars-2.2.jinja b/apache/files/Debian/envvars-2.2.jinja new file mode 100644 index 0000000..cb32973 --- /dev/null +++ b/apache/files/Debian/envvars-2.2.jinja @@ -0,0 +1,39 @@ +# Managed by saltstack + +# envvars - default environment variables for apache2ctl + +# this won't be correct after changing uid +unset HOME + +# for supporting multiple apache2 instances +if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then + SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" +else + SUFFIX= +fi + +# Since there is no sane way to get the parsed apache2 config in scripts, some +# settings are defined via environment variables and then used in apache2ctl, +# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc. +export APACHE_RUN_USER={{ salt['pillar.get']('apache:user', 'www-data') }} +export APACHE_RUN_GROUP={{ salt['pillar.get']('apache:group', 'www-data') }} +export APACHE_PID_FILE=/var/run/apache2$SUFFIX.pid +export APACHE_RUN_DIR=/var/run/apache2$SUFFIX +export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX +# Only /var/log/apache2 is handled by /etc/logrotate.d/apache2. +export APACHE_LOG_DIR=/var/log/apache2$SUFFIX + +## The locale used by some modules like mod_dav +export LANG=C +## Uncomment the following line to use the system default locale instead: +#. /etc/default/locale + +export LANG + +## The command to get the status for 'apache2ctl status'. +## Some packages providing 'www-browser' need '--dump' instead of '-dump'. +#export APACHE_LYNX='www-browser -dump' + +## If you need a higher file descriptor limit, uncomment and adjust the +## following line (default is 8192): +#APACHE_ULIMIT_MAX_FILES='ulimit -n 65536' diff --git a/apache/files/Debian/envvars.jinja b/apache/files/Debian/envvars-2.4.jinja similarity index 100% rename from apache/files/Debian/envvars.jinja rename to apache/files/Debian/envvars-2.4.jinja diff --git a/apache/files/Debian/ports-2.2.conf.jinja b/apache/files/Debian/ports-2.2.conf.jinja new file mode 100644 index 0000000..0164044 --- /dev/null +++ b/apache/files/Debian/ports-2.2.conf.jinja @@ -0,0 +1,30 @@ +{%- from "apache/map.jinja" import apache with context -%} + +# Managed by saltstack + +{% if salt['pillar.get']('apache:sites') is mapping %} + {%- set listen_directives = [] %} + {%- for id, site in salt['pillar.get']('apache:sites').items() %} + {%- set interfaces = site.get('interface', '*').split() %} + {%- set port = site.get('port', 80) %} + {%- for interface in interfaces %} + {%- set listen_directive = interface ~ ':' ~ port %} + {%- if listen_directive not in listen_directives %} + {%- do listen_directives.append(listen_directive) %} + {%- endif %} + {%- endfor %} + {%- endfor %} + {%- for listen in listen_directives %} +Listen {{ listen }} + {%- endfor %} +{%- else %} +Listen 80 + + + Listen 443 + + + + Listen 443 + +{%- endif %} diff --git a/apache/map.jinja b/apache/map.jinja index eeb5e44..bdbcbd9 100644 --- a/apache/map.jinja +++ b/apache/map.jinja @@ -76,6 +76,12 @@ 'use_require': False, }, }, merge=salt['grains.filter_by']({ + 'precise': { + 'confext': '', + 'default_site': 'default', + 'default_site_ssl': 'default-ssl', + 'use_require': True, + }, 'trusty': { 'confext': '.conf', 'default_site': '000-default.conf', diff --git a/apache/osfingermap.yaml b/apache/osfingermap.yaml index ec45e60..451f6f1 100644 --- a/apache/osfingermap.yaml +++ b/apache/osfingermap.yaml @@ -1,5 +1,7 @@ default: version: '2.4' +Ubuntu-12.04: + version: '2.2' Red Hat Enterprise Linux Server-6: version: '2.2' Red Hat Enterprise Linux Server-7: