salt.states.apache

Apache state

New in version 2014.7.0.

Allows for inputting a yaml dictionary into a file for apache configuration files.

The variable this is special and signifies what should be included with the above word between angle brackets (<>).

/etc/httpd/conf.d/website.com.conf:
  apache.configfile:
    - config:
      - VirtualHost:
          this: '*:80'
          ServerName:
            - website.com
          ServerAlias:
            - www.website.com
            - dev.website.com
          ErrorLog: logs/website.com-error_log
          CustomLog: logs/website.com-access_log combined
          DocumentRoot: /var/www/vhosts/website.com
          Directory:
            this: /var/www/vhosts/website.com
            Order: Deny,Allow
            Deny from: all
            Allow from:
              - 127.0.0.1
              - 192.168.100.0/24
            Options:
              - Indexes
              - FollowSymlinks
            AllowOverride: All

Changed in version 2018.3.

Allows having the same section container multiple times (e.g. <Directory /path/to/dir>).

YAML structure stays the same only replace dictionary with a list.

When a section container does not have mandatory attribute, such as <Else>, it still needs keyword this with empty string (or "" if nicer output is required - without space).

/etc/httpd/conf.d/website.com.conf:
  apache.configfile:
    - config:
      - VirtualHost:
          - this: '*:80'
          - ServerName:
            - website.com
          - DocumentRoot: /var/www/vhosts/website.com
          - Directory:
              this: /var/www/vhosts/website.com
              Order: Deny,Allow
              Deny from: all
              Allow from:
                - 127.0.0.1
                - 192.168.100.0/24
              Options:
                - Indexes
                - FollowSymlinks
              AllowOverride: All
          - Directory:
            - this: /var/www/vhosts/website.com/private
            - Order: Deny,Allow
            - Deny from: all
            - Allow from:
              - 127.0.0.1
              - 192.168.100.0/24
            - If:
                this: some condition
                do: something
            - Else:
                this:
                do: something else
            - Else:
                this: ""
                do: another thing