|
- {% set nginx = pillar.get('nginx', {}) -%}
- {% set version = nginx.get('version', '1.5.2') -%}
- {% set checksum = nginx.get('checksum', 'sha1=3546be28a72251f8823ab6be6a1180d300d06f76') -%}
- {% set home = nginx.get('home', '/var/www') -%}
- {% set source = nginx.get('source_root', '/usr/local/src') -%}
-
- {% set nginx_package = source + '/nginx-' + version + '.tar.gz' -%}
- {% set nginx_home = home + "/nginx-" + version -%}
- {% set nginx_modules_dir = source + "/nginx-modules" -%}
-
- include:
- - nginx.common
- {% if nginx['with_luajit'] %}
- - nginx.luajit2
- {% endif -%}
- {% if nginx['with_openresty'] %}
- - nginx.openresty
- {% endif -%}
-
- nginx_group:
- group.present:
- - name: www-data
-
- nginx_user:
- file.directory:
- - name: {{ home }}
- - user: www-data
- - group: www-data
- - mode: 0755
- - require:
- - user: nginx_user
- - group: nginx_group
- user.present:
- - name: www-data
- - home: {{ home }}
- - groups:
- - www-data
- - require:
- - group: nginx_group
-
- get-nginx:
- pkg.installed:
- - names:
- - libpcre3-dev
- - build-essential
- - libssl-dev
- file.managed:
- - name: {{ nginx_package }}
- - source: http://nginx.org/download/nginx-{{ version }}.tar.gz
- - source_hash: {{ checksum }}
- cmd.wait:
- - cwd: {{ source }}
- - name: tar -zxf {{ nginx_package }} -C {{ home }}
- - require:
- - file: nginx_user
- - pkg: get-nginx
- - watch:
- - file: get-nginx
-
- {% for name, module in nginx.get('modules', {}).items() -%}
- get-nginx-{{name}}:
- file.managed:
- - name: {{ nginx_modules_dir }}/{{name}}.tar.gz
- - source: {{ module['source'] }}
- - source_hash: {{ module['source_hash'] }}
- - require:
- - file: nginx_user
- cmd.wait:
- - cwd: {{ nginx_home }}
- - names:
- - tar -zxf {{ nginx_modules_dir }}/{{name}}.tar.gz -C {{ nginx_modules_dir }}/{{name}}
- - watch:
- - file: get-nginx
- - require_in:
- - cmd: nginx
- {% endfor -%}
-
- get-ngx_devel_kit:
- file.managed:
- - name: {{ source }}/ngx_devel_kit.tar.gz
- - source: https://github.com/simpl/ngx_devel_kit/archive/v0.2.18.tar.gz
- - source_hash: sha1=e21ba642f26047661ada678b21eef001ee2121d8
- cmd.wait:
- - cwd: {{ nginx_home }}
- - name: tar -zxf {{ source }}/ngx_devel_kit.tar.gz -C {{ source }}
- - watch:
- - file: get-ngx_devel_kit
-
- get-lua-nginx-module:
- file.managed:
- - name: {{ source }}/lua-nginx-module.tar.gz
- - source: https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.3rc1.tar.gz
- - source_hash: sha1=49b2fa946517fb2e9b26185d418570e98ff5ff51
- cmd.wait:
- - cwd: {{ nginx_home }}
- - name: tar -zxf {{ source }}/lua-nginx-module.tar.gz -C {{ source }}
- - watch:
- - file: get-lua-nginx-module
-
- {{ home }}:
- file.directory:
- - user: www-data
- - group: www-data
- - makedirs: True
- - mode: 0755
-
- {% for dir in ('body', 'proxy', 'fastcgi') -%}
- {{ home }}-{{dir}}:
- file.directory:
- - name: {{ home }}/{{dir}}
- - user: www-data
- - group: www-data
- - mode: 0755
- - require:
- - file: {{ home }}
- - require_in:
- - service: nginx
- {% endfor -%}
-
- nginx:
- cmd.wait:
- - cwd: {{ nginx_home }}
- - names:
- - ./configure --conf-path=/etc/nginx/nginx.conf
- --sbin-path=/usr/sbin/nginx
- --user=www-data
- --group=www-data
- --prefix=/usr/local/nginx
- --error-log-path=/var/log/nginx/error.log
- --pid-path=/var/run/nginx.pid
- --lock-path=/var/lock/nginx.lock
- --http-log-path=/var/log/nginx/access.log
- --with-http_dav_module
- --http-client-body-temp-path={{ home }}/body
- --http-proxy-temp-path={{ home }}/proxy
- --with-http_stub_status_module
- --http-fastcgi-temp-path={{ home }}/fastcgi
- --with-debug
- --with-http_ssl_module
- {% for name, module in nginx.get('modules', {}).items() -%}
- --add-module={{nginx_modules_dir}}/{{name}} \
- --with-pcre --with-ipv6
- {% endfor %}
- - make -j2 && make install
- - watch:
- - cmd: get-nginx
- - require:
- - cmd: get-nginx
- - cmd: get-lua-nginx-module
- - cmd: get-ngx_devel_kit
- - require_in:
- - service: nginx
- file.managed:
- - name: /etc/init/nginx.conf
- - template: jinja
- - user: root
- - group: root
- - mode: 440
- - source: salt://nginx/templates/upstart.jinja
- - require:
- - cmd: nginx
- service.running:
- - enable: True
- - watch:
- - file: nginx
- - file: /etc/nginx/nginx.conf
- - file: /etc/nginx/conf.d/default.conf
- - file: /etc/nginx/conf.d/example_ssl.conf
- - file: nginx
- - require:
- - cmd: nginx
- - file: {{ home }}
|