Merge pull request #34 from nginxinc/(feature)/select-repositories

Implement support to select NGINX repository
This commit is contained in:
Alessandro Fael Garcia 2018-05-14 12:23:43 -07:00 committed by GitHub
commit ba092d09ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 109 additions and 78 deletions

View File

@ -5,55 +5,73 @@ services:
env:
- distribution: centos
version: 6
playbook: opensource
- distribution: centos
version: 6
playbook: template
playbook: basic
- distribution: centos
version: 6
playbook: push
- distribution: centos
version: 6
playbook: stable
- distribution: centos
version: 6
playbook: template
- distribution: centos
version: 7
playbook: opensource
playbook: basic
- distribution: centos
version: 7
playbook: template
- distribution: centos
version: 7
playbook: stable
- distribution: centos
version: 7
playbook: push
- distribution: debian
version: jessie
playbook: opensource
playbook: basic
- distribution: debian
version: jessie
playbook: template
- distribution: debian
version: jessie
playbook: stable
- distribution: debian
version: jessie
playbook: push
- distribution: debian
version: stretch
playbook: opensource
playbook: basic
- distribution: debian
version: stretch
playbook: template
- distribution: debian
version: stretch
playbook: stable
- distribution: debian
version: stretch
playbook: push
- distribution: ubuntu
version: trusty
playbook: opensource
playbook: basic
- distribution: ubuntu
version: trusty
playbook: template
- distribution: ubuntu
version: trusty
playbook: stable
- distribution: ubuntu
version: trusty
playbook: push
- distribution: ubuntu
version: xenial
playbook: opensource
playbook: basic
- distribution: ubuntu
version: xenial
playbook: template
- distribution: ubuntu
version: xenial
playbook: stable
- distribution: ubuntu
version: xenial
playbook: push

View File

@ -84,12 +84,31 @@ This role has multiple variables. The defaults for all these variables are the f
# Default is 'opensource'.
type: opensource
# Specify repository origin for NGINX Open Source.
# Options are 'nginx_repository' or 'os_repository'.
# Only works if 'type' is set to 'opensource'.
# Default is nginx_repository.
install_from: nginx_repository
# Specify source repository for NGINX Open Source.
# Only works if 'install_from' is set to 'nginx_repository'.
# Defaults are the official NGINX repositories.
nginx_repository:
debian:
- 'deb https://nginx.org/packages/{{ "mainline/" if branch == "mainline" }}{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} nginx'
- 'deb-src https://nginx.org/packages/{{ "mainline/" if branch == "mainline" }}{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} nginx'
redhat:
- https://nginx.org/packages/{{ "mainline/" if branch == "mainline" }}{{ (ansible_distribution == "RedHat") | ternary('rhel/', 'centos/') }}{{ ansible_distribution_major_version|int }}/$basearch/
suse:
- https://nginx.org/packages/{{ "mainline/" if branch == "mainline" }}sles/12
# Specify which branch of NGINX Open Source you want to install.
# Options are 'mainline' or 'stable'.
# Only works if 'install_from' is set to 'nginx_repository'.
# Default is mainline.
branch: mainline
# Install nginscript, perl, waf (NGINX Plus only), geoip, image-filter, rtmp and/or xslt modules.
# Install NGINX JavaScript, Perl, ModSecurity WAF (NGINX Plus only), GeoIP, Image-Filter, RTMP Media Streaming, and/or XSLT modules.
# Default is false.
modules:
njs: false

View File

@ -4,8 +4,27 @@
# Default is 'opensource'.
type: opensource
# Specify repository origin for NGINX Open Source.
# Options are 'nginx_repository' or 'os_repository'.
# Only works if 'type' is set to 'opensource'.
# Default is nginx_repository.
install_from: nginx_repository
# Specify source repository for NGINX Open Source.
# Only works if 'install_from' is set to 'nginx_repository'.
# Defaults are the official NGINX repositories.
nginx_repository:
debian:
- deb https://nginx.org/packages/{{ (branch == 'mainline') | ternary('mainline/','') }}{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} nginx
- deb-src https://nginx.org/packages/{{ (branch == 'mainline') | ternary('mainline/','') }}{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} nginx
redhat:
- https://nginx.org/packages/{{ (branch == 'mainline') | ternary('mainline/','') }}{{ (ansible_distribution == "RedHat") | ternary('rhel/', 'centos/') }}{{ ansible_distribution_major_version|int }}/$basearch/
suse:
- https://nginx.org/packages/{{ (branch == 'mainline') | ternary('mainline/','') }}sles/12
# Specify which branch of NGINX Open Source you want to install.
# Options are 'mainline' or 'stable'.
# Only works if 'install_from' is set to 'nginx_repository'.
# Default is mainline.
branch: mainline

View File

@ -1,26 +1,38 @@
---
- import_tasks: setup-debian.yml
when: ansible_os_family == "Debian"
- name: ""
block:
- import_tasks: setup-redhat.yml
when: ansible_os_family == "RedHat"
- import_tasks: setup-debian.yml
when: ansible_os_family == "Debian"
- import_tasks: setup-suse.yml
when: ansible_os_family == "Suse"
- import_tasks: setup-redhat.yml
when: ansible_os_family == "RedHat"
- import_tasks: setup-freebsd.yml
when: ansible_os_family == "FreeBSD"
- import_tasks: setup-suse.yml
when: ansible_os_family == "Suse"
- name: "(Install: Debian/Ubuntu/CentOS/RedHat) Install NGINX"
- import_tasks: setup-freebsd.yml
when: ansible_os_family == "FreeBSD"
- name: "(Install: Debian/Ubuntu/CentOS/RedHat) Install NGINX"
package:
name: nginx
state: present
when: ansible_os_family != "FreeBSD"
notify: "(Handler: All OSs) Start NGINX"
- name: "(Install: FreeBSD) Install NGINX"
portinstall:
name: nginx
state: present
when: ansible_os_family == "FreeBSD"
notify: "(Handler: All OSs) Start NGINX"
when: install_from == "nginx_repository"
- name: "(Install: Debian/Ubuntu/CentOS/RedHat/FreeBSD) Install NGINX"
package:
name: nginx
state: present
when: ansible_os_family != "FreeBSD"
notify: "(Handler: All OSs) Start NGINX"
- name: "(Install: FreeBSD) Install NGINX"
portinstall:
name: nginx
state: present
when: ansible_os_family == "FreeBSD"
when: install_from == "os_repository"
notify: "(Handler: All OSs) Start NGINX"

View File

@ -1,16 +1,6 @@
---
- name: "(Install: Debian/Ubuntu) Add Mainline NGINX Repository"
- name: "(Install: Debian/Ubuntu) Add NGINX Repository"
apt_repository:
repo: "{{ item }}"
with_items:
- deb https://nginx.org/packages/mainline/{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} nginx
- deb-src https://nginx.org/packages/mainline/{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} nginx
when: branch == "mainline"
- name: "(Install: Debian/Ubuntu) Add Stable NGINX Repository"
apt_repository:
repo: "{{ item }}"
with_items:
- deb https://nginx.org/packages/{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} nginx
- deb-src https://nginx.org/packages/{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} nginx
when: branch == "stable"
- "{{ nginx_repository.debian }}"

View File

@ -1,36 +1,8 @@
---
- name: "(Install: RedHat) Add Mainline NGINX Repository"
- name: "(Install: CentOS/RedHat) Add NGINX Repository"
yum_repository:
name: nginx
baseurl: https://nginx.org/packages/mainline/rhel/{{ ansible_distribution_major_version|int }}/$basearch/
baseurl: "{{ nginx_repository.redhat }}"
description: NGINX Repository
enabled: yes
gpgcheck: yes
when: branch == "mainline" and ansible_distribution == "RedHat"
- name: "(Install: CentOS) Add Mainline NGINX Repository"
yum_repository:
name: nginx
baseurl: https://nginx.org/packages/mainline/centos/{{ ansible_distribution_major_version|int }}/$basearch/
description: NGINX Repository
enabled: yes
gpgcheck: yes
when: branch == "mainline" and ansible_distribution == "CentOS"
- name: "(Install: RedHat) Add Stable NGINX Repository"
yum_repository:
name: nginx
baseurl: https://nginx.org/packages/rhel/{{ ansible_distribution_major_version|int }}/$basearch/
description: NGINX Repository
enabled: yes
gpgcheck: yes
when: branch == "stable" and ansible_distribution == "RedHat"
- name: "(Install: CentOS) Add Stable NGINX Repository"
yum_repository:
name: nginx
baseurl: https://nginx.org/packages/centos/{{ ansible_distribution_major_version|int }}/$basearch/
description: NGINX Repository
enabled: yes
gpgcheck: yes
when: branch == "stable" and ansible_distribution == "CentOS"

View File

@ -1,12 +1,5 @@
---
- name: "(Install: SUSE) Add Mainline NGINX Repository"
- name: "(Install: SUSE) Add NGINX Repository"
zypper_repository:
name: nginx
repo: https://nginx.org/packages/mainline/sles/12
when: branch == "mainline"
- name: "(Install: SUSE) Add Stable NGINX Repository"
zypper_repository:
name: nginx
repo: https://nginx.org/packages/sles/12
when: branch == "stable"
repo: "{{ nginx_repository.suse }}"

View File

@ -0,0 +1,8 @@
---
- hosts: localhost
become: true
remote_user: root
roles:
- ansible-role-nginx
vars:
branch: stable