Merge pull request #118 from grobinson-blockchain/master
Build from source with nginx.ng
This commit is contained in:
commit
d9002d397f
@ -4,6 +4,14 @@
|
|||||||
|
|
||||||
{% from 'nginx/ng/map.jinja' import nginx, sls_block with context %}
|
{% from 'nginx/ng/map.jinja' import nginx, sls_block with context %}
|
||||||
|
|
||||||
|
{% if nginx.install_from_source %}
|
||||||
|
nginx_log_dir:
|
||||||
|
file.directory:
|
||||||
|
- name: /var/log/nginx
|
||||||
|
- user: {{ nginx.server.config.user }}
|
||||||
|
- group: {{ nginx.server.config.user }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
nginx_config:
|
nginx_config:
|
||||||
file.managed:
|
file.managed:
|
||||||
{{ sls_block(nginx.server.opts) }}
|
{{ sls_block(nginx.server.opts) }}
|
||||||
|
15
nginx/ng/files/nginx.service
Normal file
15
nginx/ng/files/nginx.service
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=The NGINX HTTP and reverse proxy server
|
||||||
|
After=syslog.target network.target remote-fs.target nss-lookup.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
PIDFile=/run/nginx.pid
|
||||||
|
ExecStartPre=/usr/sbin/nginx -t
|
||||||
|
ExecStart=/usr/sbin/nginx
|
||||||
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
|
ExecStop=/bin/kill -s QUIT $MAINPID
|
||||||
|
PrivateTmp=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
@ -2,6 +2,8 @@
|
|||||||
#
|
#
|
||||||
# Meta-state to fully install nginx.
|
# Meta-state to fully install nginx.
|
||||||
|
|
||||||
|
{% from 'nginx/ng/map.jinja' import nginx, sls_block with context %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- nginx.ng.config
|
- nginx.ng.config
|
||||||
- nginx.ng.service
|
- nginx.ng.service
|
||||||
@ -18,4 +20,8 @@ extend:
|
|||||||
nginx_config:
|
nginx_config:
|
||||||
file:
|
file:
|
||||||
- require:
|
- require:
|
||||||
|
{% if nginx.install_from_source %}
|
||||||
|
- cmd: nginx_install
|
||||||
|
{% else %}
|
||||||
- pkg: nginx_install
|
- pkg: nginx_install
|
||||||
|
{% endif %}
|
||||||
|
@ -77,6 +77,12 @@
|
|||||||
'install_from_ppa': False,
|
'install_from_ppa': False,
|
||||||
'install_from_repo': False,
|
'install_from_repo': False,
|
||||||
'ppa_version': 'stable',
|
'ppa_version': 'stable',
|
||||||
|
'source_version': '1.10.0',
|
||||||
|
'source_hash': '8ed647c3dd65bc4ced03b0e0f6bf9e633eff6b01bac772bcf97077d58bc2be4d',
|
||||||
|
'source': {
|
||||||
|
'opts': {},
|
||||||
|
'modules': {}
|
||||||
|
},
|
||||||
'package': {
|
'package': {
|
||||||
'opts': {},
|
'opts': {},
|
||||||
},
|
},
|
||||||
|
@ -1,17 +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 %}
|
{% from 'nginx/ng/map.jinja' import nginx, sls_block with context %}
|
||||||
|
|
||||||
nginx_install:
|
nginx_install:
|
||||||
{% if nginx.install_from_source %}
|
|
||||||
## add source compilation here
|
|
||||||
{% else %}
|
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
{{ sls_block(nginx.package.opts) }}
|
{{ sls_block(nginx.package.opts) }}
|
||||||
- name: {{ nginx.lookup.package }}
|
- name: {{ nginx.lookup.package }}
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if salt['grains.get']('os_family') == 'Debian' %}
|
{% if salt['grains.get']('os_family') == 'Debian' %}
|
||||||
{%- if nginx.install_from_repo %}
|
{%- if nginx.install_from_repo %}
|
@ -6,7 +6,18 @@
|
|||||||
{% set service_function = {True:'running', False:'dead'}.get(nginx.service.enable) %}
|
{% set service_function = {True:'running', False:'dead'}.get(nginx.service.enable) %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- nginx.ng.install
|
{% if nginx.install_from_source %}
|
||||||
|
- nginx.ng.src
|
||||||
|
{% else %}
|
||||||
|
- nginx.ng.pkg
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if nginx.install_from_source %}
|
||||||
|
nginx_systemd_service_file:
|
||||||
|
file.managed:
|
||||||
|
- name: /lib/systemd/system/nginx.service
|
||||||
|
- source: salt://nginx/ng/files/nginx.service
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
nginx_service:
|
nginx_service:
|
||||||
service.{{ service_function }}:
|
service.{{ service_function }}:
|
||||||
@ -14,8 +25,14 @@ nginx_service:
|
|||||||
- name: {{ nginx.lookup.service }}
|
- name: {{ nginx.lookup.service }}
|
||||||
- enable: {{ nginx.service.enable }}
|
- enable: {{ nginx.service.enable }}
|
||||||
- require:
|
- require:
|
||||||
- sls: nginx.ng.install
|
{% if nginx.install_from_source %}
|
||||||
|
- sls: nginx.ng.src
|
||||||
|
{% else %}
|
||||||
|
- sls: nginx.ng.pkg
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
{% if not nginx.install_from_source %}
|
{% if nginx.install_from_source %}
|
||||||
|
- cmd: nginx_install
|
||||||
|
{% else %}
|
||||||
- pkg: nginx_install
|
- pkg: nginx_install
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
62
nginx/ng/src.sls
Normal file
62
nginx/ng/src.sls
Normal file
@ -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
|
@ -21,10 +21,14 @@ nginx:
|
|||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
ng:
|
ng:
|
||||||
# PPA installing
|
# PPA install
|
||||||
install_from_ppa: True
|
install_from_ppa: True
|
||||||
# Set to 'stable', 'development' (mainline), 'community', or 'nightly' for each build accordingly ( https://launchpad.net/~nginx )
|
# Set to 'stable', 'development' (mainline), 'community', or 'nightly' for each build accordingly ( https://launchpad.net/~nginx )
|
||||||
ppa_version: 'stable'
|
ppa_version: 'stable'
|
||||||
|
|
||||||
|
# Source install
|
||||||
|
source_version: '1.10.0'
|
||||||
|
source_hash: ''
|
||||||
|
|
||||||
# These are usually set by grains in map.jinja
|
# These are usually set by grains in map.jinja
|
||||||
lookup:
|
lookup:
|
||||||
@ -43,6 +47,9 @@ nginx:
|
|||||||
# Source compilation is not currently a part of nginx.ng
|
# Source compilation is not currently a part of nginx.ng
|
||||||
from_source: False
|
from_source: False
|
||||||
|
|
||||||
|
source:
|
||||||
|
opts: {}
|
||||||
|
|
||||||
package:
|
package:
|
||||||
opts: {} # this partially exposes parameters of pkg.installed
|
opts: {} # this partially exposes parameters of pkg.installed
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user