diff --git a/README.rst b/README.rst index 8cd058d..bc1c7b6 100644 --- a/README.rst +++ b/README.rst @@ -1,41 +1,40 @@ apache ====== -DEPENDENCIES: - These salt-states are required: - 1) apt +Formulas to set up and configure the Apache HTTP server -POSSIBLE DEPENDENCIES - These salt-states may be required depending on what your doing: +.. note:: - 1) php + See the full `Salt Formulas installation and usage instructions + `_. -ORDERING: +Available states +---------------- -The ordering of the states for apache falls into block ranges which are: +``apache`` + Installs the Apache package and starts the service. +``apache.debian_full`` + Installs and configures Apache on Debian and Ubuntu systems. - 1) apache will use 1-500 for ordering - 2) apache will reserve 1 -100 as unused - 3) apache will reserve 101-150 for pre pkg install - 4) apache will reserve 151-200 for pkg install - 5) apache will reserve 201-250 for pkg configure - 6) apache will reserve 251-300 for downloads, git stuff, load data - 7) apache will reserve 301-400 for unknown purposes - 8) apache will reserve 401-450 for service restart-reloads - 9) apache WILL reserve 451-460 for service.running - 10) apache will reserve 461-500 for cmd requiring operational services + These states are ordered using the ``order`` declaration. Different stages + are divided into the following number ranges: -PILLARS: + 1) apache will use 1-500 for ordering + 2) apache will reserve 1 -100 as unused + 3) apache will reserve 101-150 for pre pkg install + 4) apache will reserve 151-200 for pkg install + 5) apache will reserve 201-250 for pkg configure + 6) apache will reserve 251-300 for downloads, git stuff, load data + 7) apache will reserve 301-400 for unknown purposes + 8) apache will reserve 401-450 for service restart-reloads + 9) apache WILL reserve 451-460 for service.running + 10) apache will reserve 461-500 for cmd requiring operational services - 1) No pillar data is required - 2) Full pillar structure: + Dependencies: -apache: - php-ini: 'salt://path/to/file/php.ini' - register-site: - {{UNQIUE}}: - name: 'my name' - path: 'salt://path/to/sites-available/conf/file' - state: 'enabled' + * `apt `_ + + Optional dependencies: + + 1) `php `_ - 3) UNIQUE can be any name as an array index, and you can duplicate this section diff --git a/apache/debian_full.sls b/apache/debian_full.sls new file mode 100644 index 0000000..0f90a3c --- /dev/null +++ b/apache/debian_full.sls @@ -0,0 +1,46 @@ +{% if grains['os_family']=="Debian" %} + +include: + - apt + - apache + - apache.register_site + +extend: + apache: + pkg: + - order: 175 + service: + - order: 455 + +a2dissite 000-default: + cmd.run: + - order: 225 + - onlyif: ls /etc/apache2/sites-enabled/000-default + - watch_in: + - cmd: apache-reload + - require: + - pkg: apache + +apache-reload: + cmd.wait: + - name: service apache2 reload + - order: 420 + +apache-restart: + cmd.wait: + - name: service apache2 restart + - order: 425 + +/etc/apache2/sites-available/default: + file.absent: + - order: 230 + - require: + - pkg: apache + +/etc/apache2/sites-available/default-ssl: + file.absent: + - order: 230 + - require: + - pkg: apache + +{% endif %} #END: os = debian diff --git a/apache/fcgid.sls b/apache/fcgid.sls index 895cffe..12bbbd0 100644 --- a/apache/fcgid.sls +++ b/apache/fcgid.sls @@ -1,8 +1,8 @@ +{% if grains['os_family']=="Debian" %} + include: - apt -{% if grains['os']=="Ubuntu" %} - mod-fcgid: pkg.installed: - name: libapache2-mod-fcgid diff --git a/apache/init.sls b/apache/init.sls index eb186cd..e899e60 100644 --- a/apache/init.sls +++ b/apache/init.sls @@ -1,47 +1,13 @@ -include: - - apt - - apache.register_site - -{% if grains['os']=="Ubuntu" %} +{% set pkg = salt['grains.filter_by']({ + 'Debian': {'name': 'apache2'}, + 'RedHat': {'name': 'httpd'}, +}) %} apache: - pkg.installed: - - name: apache2 - - order: 175 - service.running: - - name: apache2 + pkg: + - installed + - name: {{ pkg.name }} + service: + - running + - name: {{ pkg.name }} - enable: True - - order: 455 - -a2dissite 000-default: - cmd.run: - - order: 225 - - onlyif: ls /etc/apache2/sites-enabled/000-default - - watch_in: - - cmd: apache-reload - - require: - - pkg: apache - -apache-reload: - cmd.wait: - - name: service apache2 reload - - order: 420 - -apache-restart: - cmd.wait: - - name: service apache2 restart - - order: 425 - -/etc/apache2/sites-available/default: - file.absent: - - order: 230 - - require: - - pkg: apache - -/etc/apache2/sites-available/default-ssl: - file.absent: - - order: 230 - - require: - - pkg: apache - -{% endif %} #END: os = ubuntu diff --git a/apache/php5.sls b/apache/php5.sls index b6b5710..ac28e87 100644 --- a/apache/php5.sls +++ b/apache/php5.sls @@ -1,8 +1,8 @@ +{% if grains['os_family']=="Debian" %} + include: - apt -{% if grains['os']=="Ubuntu" %} - mod-php5: pkg.installed: - name: libapache2-mod-php5 diff --git a/apache/register_site.sls b/apache/register_site.sls index 65eb618..1e6920f 100644 --- a/apache/register_site.sls +++ b/apache/register_site.sls @@ -1,3 +1,5 @@ +{% if grains['os_family']=="Debian" %} + {% if 'apache' in pillar and 'register-site' in pillar['apache'] %} #BEGIN: ['apache']['register-site'] {% for site in pillar['apache']['register-site'] %} @@ -44,3 +46,4 @@ a2dissite {{ pillar['apache']['register-site'][site]['name'] }}: {% endfor %} {% endif %} #END: apache-register-site +{% endif %} #END: grains['os_family'] == debian diff --git a/apache/rewrite.sls b/apache/rewrite.sls index 958c74a..51099f5 100644 --- a/apache/rewrite.sls +++ b/apache/rewrite.sls @@ -1,8 +1,8 @@ +{% if grains['os_family']=="Debian" %} + include: - apt -{% if grains['os']=="Ubuntu" %} - a2enmod rewrite: cmd.run: - unless: ls /etc/apache2/mods-enabled/rewrite.load diff --git a/pillar.example b/pillar.example index e69de29..884db9a 100644 --- a/pillar.example +++ b/pillar.example @@ -0,0 +1,10 @@ +# Example for the apache.debian_full formula: + +apache: + php-ini: 'salt://path/to/file/php.ini' + register-site: + # any name as an array index, and you can duplicate this section + {{UNQIUE}}: + name: 'my name' + path: 'salt://path/to/sites-available/conf/file' + state: 'enabled'