ENH: Add install_from_ppa pillar setting and PPA pkgrepo

This commit is contained in:
Wes Turner 2014-08-09 02:34:01 -05:00
parent 0810b94c55
commit c696e87f34
5 changed files with 47 additions and 6 deletions

View File

@ -1,9 +1,11 @@
{%- set nginx=pillar.get('nginx', {}) %}
include:
- nginx.common
{% if pillar.get('nginx', {}).get('user_auth_enabled', true) %}
{% if nginx.get('user_auth_enabled', true) %}
- nginx.users
{% endif %}
{% if pillar.get('nginx', {}).get('install_from_source') %}
{% if nginx.get('install_from_source') %}
- nginx.source
{% else %}
- nginx.package

View File

@ -1,8 +1,10 @@
{% set nginx = salt['grains.filter_by']({
'Debian': {
'package': 'nginx',
'apache_utils': 'apache2-utils',
},
'RedHat': {
'package': 'nginx',
'apache_utils': 'httpd-tools',
},
}, merge=salt['pillar.get']('nginx:lookup')) %}

View File

@ -5,10 +5,25 @@
{% from 'nginx/ng/map.jinja' import nginx, sls_block with context %}
nginx_install:
{% if nginx.from_source %}
{% 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_ppa %}
nginx_ppa_repo:
pkgrepo.managed:
- humanname: nginx-ppa-{{ grains['oscodename'] }}
- name: deb http://ppa.launchpad.net/nginx/stable/ubuntu {{ grains['oscodename'] }} main
- file: /etc/apt/sources.list.d/nginx-stable-{{ grains['oscodename'] }}.list
- dist: {{ grains['oscodename'] }}
- keyid: C300EE8C
- keyserver: keyserver.ubuntu.com
- require_in:
- pkg: nginx_install
{% endif %}
{% endif %}

View File

@ -1,3 +1,4 @@
{% from "nginx/map.jinja" import nginx with context %}
{% set use_upstart = pillar.get('nginx', {}).get('use_upstart', true) %}
{% if use_upstart %}
nginx-old-init:
@ -35,9 +36,23 @@ nginx-old-init-disable:
- file: nginx-old-init
{% endif %}
{% if salt['grains.get']('os_family') == 'Debian' %}
nginx-ppa-repo:
pkgrepo.managed:
- enabled: {{ salt['pillar.get']('nginx:install_from_ppa', False) }}
- humanname: nginx-ppa-{{ grains['oscodename'] }}
- name: deb http://ppa.launchpad.net/nginx/stable/ubuntu {{ grains['oscodename'] }} main
- file: /etc/apt/sources.list.d/nginx-stable-{{ grains['oscodename'] }}.list
- dist: {{ grains['oscodename'] }}
- keyid: C300EE8C
- keyserver: keyserver.ubuntu.com
- require_in:
- pkg: nginx
{% endif %}
nginx:
pkg.installed:
- name: nginx
- name: {{ nginx.package }}
{% if use_upstart %}
file:
- managed

View File

@ -1,5 +1,6 @@
nginx:
install_from_source: True
install_from_ppa: False
use_upstart: True
user_auth_enabled: True
with_luajit: False
@ -13,6 +14,9 @@ nginx:
source: http://github.com/agentzh/headers-more-nginx-module/tarball/v0.21
source_hash: sha1=dbf914cbf3f7b6cb7e033fa7b7c49e2f8879113b
lookup:
package: nginx
# ========
# nginx.ng
# ========
@ -30,7 +34,10 @@ nginx:
vhost_use_symlink: True
# Source compilation is not currently a part of nginx.ng
from_source: False
install_from_source: False
# Install nginx.ng.lookup.package from the PPA repository
install_from_ppa: True
package:
opts: {} # this partially exposes parameters of pkg.installed