128 lines
3.5 KiB
Plaintext
128 lines
3.5 KiB
Plaintext
{% from "nginx/map.jinja" import nginx with context %}
|
|
{% set use_upstart = salt['pillar.get']('nginx:use_upstart', nginx['use_upstart']) %}
|
|
{% if use_upstart %}
|
|
nginx-old-init:
|
|
file.rename:
|
|
- name: /usr/share/nginx/init.d
|
|
- source: /etc/init.d/nginx
|
|
- require_in:
|
|
- file: nginx
|
|
- require:
|
|
- pkg: nginx
|
|
- force: True
|
|
{% if grains.get('os_family') == 'Debian' %}
|
|
# Don't dpkg-divert if we are not Debian based!
|
|
cmd.wait:
|
|
- name: dpkg-divert --divert /usr/share/nginx/init.d --add /etc/init.d/nginx
|
|
- require:
|
|
- module: nginx-old-init
|
|
- watch:
|
|
- file: nginx-old-init
|
|
- require_in:
|
|
- file: nginx
|
|
{% endif %}
|
|
module.wait:
|
|
- name: cmd.run
|
|
- cmd: kill `cat /var/run/nginx.pid`
|
|
- watch:
|
|
- file: nginx-old-init
|
|
- require_in:
|
|
- file: nginx
|
|
|
|
# RedHat requires the init file in place to chkconfig off
|
|
{% if nginx['disable_before_rename'] %}
|
|
{% set _in = '_in' %}
|
|
{% else %}
|
|
{% set _in = '' %}
|
|
{% endif %}
|
|
|
|
nginx-old-init-disable:
|
|
cmd.run:
|
|
- name: {{ nginx.old_init_disable }}
|
|
- require{{ _in }}:
|
|
- module: nginx-old-init
|
|
- onlyif: [ -f /etc/init.d/nginx ]
|
|
{% endif %}
|
|
|
|
{% if grains.get('os_family') == 'Debian' %}
|
|
|
|
{% set repo_source = pillar.get('nginx', {}).get('repo_source', 'default') %}
|
|
{% set use_ppa = repo_source == 'ppa' and grains.get('os') == 'Ubuntu' %}
|
|
{% set use_official = repo_source == 'official' and grains.get('os') in ('Ubuntu', 'Debian') %}
|
|
|
|
nginx-ppa-repo:
|
|
pkgrepo:
|
|
{%- if use_ppa %}
|
|
- managed
|
|
{%- else %}
|
|
- absent
|
|
{%- endif %}
|
|
- humanname: nginx-ppa-{{ grains['oscodename'] }}
|
|
- name: deb http://ppa.launchpad.net/nginx/{{ pillar.get('nginx', {}).get('repo_version', 'stable') }}/ubuntu {{ grains['oscodename'] }} main
|
|
- file: /etc/apt/sources.list.d/nginx-{{ pillar.get('nginx', {}).get('repo_version', 'stable') }}-{{ grains['oscodename'] }}.list
|
|
- dist: {{ grains['oscodename'] }}
|
|
- keyid: C300EE8C
|
|
- keyserver: keyserver.ubuntu.com
|
|
- require_in:
|
|
- pkg: nginx
|
|
- watch_in:
|
|
- pkg: nginx
|
|
|
|
nginx-official-repo:
|
|
pkgrepo:
|
|
{%- if use_official %}
|
|
- managed
|
|
{%- else %}
|
|
- absent
|
|
{%- endif %}
|
|
- humanname: nginx apt repo
|
|
- name: deb http://nginx.org/packages/{{ grains['os'].lower() }}/ {{ grains['oscodename'] }} nginx
|
|
- file: /etc/apt/sources.list.d/nginx-official-{{ grains['oscodename'] }}.list
|
|
- keyid: ABF5BD827BD9BF62
|
|
- keyserver: keyserver.ubuntu.com
|
|
- require_in:
|
|
- pkg: nginx
|
|
- watch_in:
|
|
- pkg: nginx
|
|
|
|
{% endif %}
|
|
|
|
nginx:
|
|
pkg.installed:
|
|
- name: {{ nginx.package }}
|
|
{% if use_upstart %}
|
|
file.managed:
|
|
- name: /etc/init/nginx.conf
|
|
- template: jinja
|
|
- user: root
|
|
- group: root
|
|
- mode: 440
|
|
- source: salt://nginx/templates/upstart.jinja
|
|
- require:
|
|
- pkg: nginx
|
|
- file: nginx-old-init
|
|
- module: nginx-old-init
|
|
{% endif %}
|
|
service.running:
|
|
- enable: True
|
|
- restart: True
|
|
- watch:
|
|
{% if use_upstart %}
|
|
- file: nginx
|
|
{% endif %}
|
|
{% set conf_dir = salt['pillar.get']('nginx:conf_dir', '/etc/nginx') %}
|
|
- file: {{ conf_dir }}/nginx.conf
|
|
- file: {{ conf_dir }}/conf.d/default.conf
|
|
- file: {{ conf_dir }}/conf.d/example_ssl.conf
|
|
- pkg: nginx
|
|
|
|
# Create 'service' symlink for tab completion.
|
|
# This is not supported in os_family RedHat and likely only works in
|
|
# Debian-based distros
|
|
{% if use_upstart and grains['os_family'] == 'Debian' %}
|
|
/etc/init.d/nginx:
|
|
file.symlink:
|
|
- target: /lib/init/upstart-job
|
|
- force: True
|
|
{% endif %}
|