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 %} | ||||
| 
 | ||||
| {% 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: | ||||
|   file.managed: | ||||
|     {{ 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. | ||||
| 
 | ||||
| {% from 'nginx/ng/map.jinja' import nginx, sls_block with context %} | ||||
| 
 | ||||
| include: | ||||
|   - nginx.ng.config | ||||
|   - nginx.ng.service | ||||
| @ -18,4 +20,8 @@ extend: | ||||
|   nginx_config: | ||||
|     file: | ||||
|       - require: | ||||
|         {% if nginx.install_from_source %} | ||||
|         - cmd: nginx_install | ||||
|         {% else %} | ||||
|         - pkg: nginx_install | ||||
|         {% endif %} | ||||
|  | ||||
| @ -77,6 +77,12 @@ | ||||
|     'install_from_ppa': False, | ||||
|     'install_from_repo': False, | ||||
|     'ppa_version': 'stable', | ||||
|     'source_version': '1.10.0', | ||||
|     'source_hash': '8ed647c3dd65bc4ced03b0e0f6bf9e633eff6b01bac772bcf97077d58bc2be4d', | ||||
|     'source': { | ||||
|         'opts': {}, | ||||
|         'modules': {} | ||||
|     }, | ||||
|     'package': { | ||||
|         '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 %} | ||||
| 
 | ||||
| nginx_install: | ||||
|   {% if nginx.install_from_source %} | ||||
|   ## add source compilation here | ||||
|   {% else %} | ||||
|   pkg.installed: | ||||
|     {{ sls_block(nginx.package.opts) }} | ||||
|     - name: {{ nginx.lookup.package }} | ||||
|   {% endif %} | ||||
| 
 | ||||
| {% if salt['grains.get']('os_family') == 'Debian' %} | ||||
|   {%- if nginx.install_from_repo %} | ||||
| @ -6,7 +6,18 @@ | ||||
| {% 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 %} | ||||
| nginx_systemd_service_file: | ||||
|   file.managed: | ||||
|     - name: /lib/systemd/system/nginx.service | ||||
|     - source: salt://nginx/ng/files/nginx.service | ||||
| {% endif %}  | ||||
|    | ||||
| nginx_service: | ||||
|   service.{{ service_function }}: | ||||
| @ -14,8 +25,14 @@ 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 not nginx.install_from_source %} | ||||
|       {% if nginx.install_from_source %} | ||||
|       - cmd: nginx_install | ||||
|       {% else %} | ||||
|       - pkg: nginx_install | ||||
|       {% 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: | ||||
|   ng: | ||||
|     # PPA installing | ||||
|     # PPA install | ||||
|     install_from_ppa: True | ||||
|     # Set to 'stable', 'development' (mainline), 'community', or 'nightly' for each build accordingly ( https://launchpad.net/~nginx ) | ||||
|     ppa_version: 'stable' | ||||
| 
 | ||||
|     # Source install | ||||
|     source_version: '1.10.0' | ||||
|     source_hash: '' | ||||
|      | ||||
|     # These are usually set by grains in map.jinja | ||||
|     lookup: | ||||
| @ -43,6 +47,9 @@ nginx: | ||||
|     # Source compilation is not currently a part of nginx.ng | ||||
|     from_source: False | ||||
| 
 | ||||
|     source: | ||||
|       opts: {} | ||||
| 
 | ||||
|     package: | ||||
|       opts: {} # this partially exposes parameters of pkg.installed | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Forrest
						Forrest