diff --git a/nginx/ng/config.sls b/nginx/ng/config.sls index 8928ead..32cf845 100644 --- a/nginx/ng/config.sls +++ b/nginx/ng/config.sls @@ -5,8 +5,9 @@ {% from 'nginx/ng/map.jinja' import nginx, sls_block with context %} {% if nginx.install_from_source %} -/var/log/nginx: - file.directory +nginx_log_directory: + file.directory: + - name: /var/log/nginx {% endif %} nginx_config: diff --git a/nginx/ng/map.jinja b/nginx/ng/map.jinja index 423987f..30ac548 100644 --- a/nginx/ng/map.jinja +++ b/nginx/ng/map.jinja @@ -81,6 +81,7 @@ 'source_hash': '8ed647c3dd65bc4ced03b0e0f6bf9e633eff6b01bac772bcf97077d58bc2be4d', 'source': { 'opts': {}, + 'modules': {} }, 'package': { 'opts': {}, diff --git a/nginx/ng/install.sls b/nginx/ng/pkg.sls similarity index 58% rename from nginx/ng/install.sls rename to nginx/ng/pkg.sls index 9330943..7f149d4 100644 --- a/nginx/ng/install.sls +++ b/nginx/ng/pkg.sls @@ -1,75 +1,13 @@ -# nginx.ng.install +# nginx.ng.pkg # -# Manages installation of nginx. +# Manages installation of nginx from pkg. {% from 'nginx/ng/map.jinja' import nginx, sls_block with context %} -{% if nginx.install_from_source %} -nginx_build_dep: - {% if salt['grains.get']('os_family') == 'Debian' %} - cmd.run: - - name: apt-get -y build-dep nginx - {% elif salt['grains.get']('os_family') == 'RedHat' %} - cmd.run: - - name: yum-builddep -y nginx - {% else %} - ## install build deps for other distros - {% endif %} - -nginx_download: - archive.extracted: - - name: /tmp/ - - source: http://nginx.org/download/nginx-{{ nginx.source_version }}.tar.gz - - source_hash: sha256={{ nginx.source_hash }} - - archive_format: tar - - if_missing: /usr/sbin/nginx-{{ nginx.source_version }} - - require: - - cmd: nginx_build_dep - - onchanges: - - cmd: nginx_build_dep - -nginx_configure: - cmd.run: - - name: ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf {{ nginx.source.opts | join(' ') }} - - cwd: /tmp/nginx-{{ nginx.source_version }} - - require: - - archive: nginx_download - - onchanges: - - archive: nginx_download - -nginx_compile: - cmd.run: - - name: make - - cwd: /tmp/nginx-{{ nginx.source_version }} - - require: - - cmd: nginx_configure -{% endif %} - nginx_install: - {% if nginx.install_from_source %} - cmd.run: - - name: make install - - cwd: /tmp/nginx-{{ nginx.source_version }} - - require: - - cmd: nginx_compile - - onchanges: - - cmd: nginx_compile - {% else %} pkg.installed: {{ sls_block(nginx.package.opts) }} - name: {{ nginx.lookup.package }} - {% endif %} - -{% if nginx.install_from_source %} -nginx_link: - file.copy: - - name: /usr/sbin/nginx-{{ nginx.source_version }} - - source: /usr/sbin/nginx - - require: - - cmd: nginx_install - - onchanges: - - cmd: nginx_install -{% endif %} {% if salt['grains.get']('os_family') == 'Debian' %} {%- if nginx.install_from_repo %} diff --git a/nginx/ng/service.sls b/nginx/ng/service.sls index aa9b0a8..3ea3d5b 100644 --- a/nginx/ng/service.sls +++ b/nginx/ng/service.sls @@ -6,11 +6,16 @@ {% set service_function = {True:'running', False:'dead'}.get(nginx.service.enable) %} include: - - nginx.ng.install + {% if nginx.install_from_source %} + - nginx.ng.src + {% else %} + - nginx.ng.pkg + {% endif %} {% if nginx.install_from_source %} -/lib/systemd/system/nginx.service: +nginx_systemd_service_file: file.managed: + - name: /lib/systemd/system/nginx.service - source: salt://nginx/ng/files/nginx.service {% endif %} @@ -20,7 +25,11 @@ nginx_service: - name: {{ nginx.lookup.service }} - enable: {{ nginx.service.enable }} - require: - - sls: nginx.ng.install + {% if nginx.install_from_source %} + - sls: nginx.ng.src + {% else %} + - sls: nginx.ng.pkg + {% endif %} - watch: {% if nginx.install_from_source %} - cmd: nginx_install diff --git a/nginx/ng/src.sls b/nginx/ng/src.sls new file mode 100644 index 0000000..46d52fd --- /dev/null +++ b/nginx/ng/src.sls @@ -0,0 +1,62 @@ +# nginx.ng.src +# +# Manages installation of nginx from source. + +{% from 'nginx/ng/map.jinja' import nginx, sls_block with context %} + +nginx_build_dep: + {% if salt['grains.get']('os_family') == 'Debian' %} + cmd.run: + - name: apt-get -y build-dep nginx + {% elif salt['grains.get']('os_family') == 'RedHat' %} + cmd.run: + - name: yum-builddep -y nginx + {% else %} + ## install build deps for other distros + {% endif %} + +nginx_download: + archive.extracted: + - name: /tmp/ + - source: http://nginx.org/download/nginx-{{ nginx.source_version }}.tar.gz + - source_hash: sha256={{ nginx.source_hash }} + - archive_format: tar + - if_missing: /usr/sbin/nginx-{{ nginx.source_version }} + - require: + - cmd: nginx_build_dep + - onchanges: + - cmd: nginx_build_dep + +nginx_configure: + cmd.run: + - name: ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf {{ nginx.source.opts | join(' ') }} + - cwd: /tmp/nginx-{{ nginx.source_version }} + - require: + - archive: nginx_download + - onchanges: + - archive: nginx_download + +nginx_compile: + cmd.run: + - name: make + - cwd: /tmp/nginx-{{ nginx.source_version }} + - require: + - cmd: nginx_configure + +nginx_install: + cmd.run: + - name: make install + - cwd: /tmp/nginx-{{ nginx.source_version }} + - require: + - cmd: nginx_compile + - onchanges: + - cmd: nginx_compile + +nginx_link: + file.copy: + - name: /usr/sbin/nginx-{{ nginx.source_version }} + - source: /usr/sbin/nginx + - require: + - cmd: nginx_install + - onchanges: + - cmd: nginx_install \ No newline at end of file