Support for Apache


The functions in here are generic functions designed to work with all implementations of Apache. Debian-specific functions have been moved into, but will still load under the apache namespace when a Debian-based system is detected.

salt.modules.apache.config(name, config, edit=True)

Create VirtualHost configuration files


File for the virtual host


VirtualHost configurations


This function is not meant to be used from the command line. Config is meant to be an ordered dict of all of the apache configs.

CLI Example:

salt '*' apache.config /etc/httpd/conf.d/ports.conf config="[{'Listen': '22'}]"

Return list of directives together with expected arguments and places where the directive is valid (apachectl -L)

CLI Example:

salt '*' apache.directives

Return server version (apachectl -V)

CLI Example:

salt '*' apache.fullversion

Return list of static and shared modules (apachectl -M)

CLI Example:

salt '*' apache.modules

Get Information from the Apache server-status handler


The server-status handler is disabled by default. In order for this function to work it needs to be enabled. See

The following configuration needs to exists in pillar/grains. Each entry nested in apache.server-status is a profile of a vhost/server. This would give support for multiple apache servers/vhosts.

    url: http://localhost/server-status
    user: someuser
    pass: password
    realm: 'authentication realm for digest passwords'
    timeout: 5

CLI Examples:

salt '*' apache.server_status
salt '*' apache.server_status other-profile

Return list of modules compiled into the server (apachectl -l)

CLI Example:

salt '*' apache.servermods

Signals httpd to start, restart, or stop.

CLI Example:

salt '*' apache.signal restart
salt.modules.apache.useradd(pwfile, user, password, opts='')

Add HTTP user using the htpasswd command. If the htpasswd file does not exist, it will be created. Valid options that can be passed are:

n  Don't update file; display results on stdout.
m  Force MD5 hashing of the password (default).
d  Force CRYPT(3) hashing of the password.
p  Do not hash the password (plaintext).
s  Force SHA1 hashing of the password.

CLI Examples:

salt '*' apache.useradd /etc/httpd/htpasswd larry badpassword
salt '*' apache.useradd /etc/httpd/htpasswd larry badpass opts=ns
salt.modules.apache.userdel(pwfile, user)

Delete HTTP user from the specified htpasswd file.

CLI Example:

salt '*' apache.userdel /etc/httpd/htpasswd larry

Return server version (apachectl -v)

CLI Example:

salt '*' apache.version

Show the settings as parsed from the config file (currently only shows the virtualhost settings) (apachectl -S). Because each additional virtual host adds to the execution time, this command may require a long timeout be specified by using -t 10.

CLI Example:

salt -t 10 '*' apache.vhosts