{% 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 - unless: [ ! -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 %}