Merge pull request #41 from nginxinc/(feature)/unit-add-distros
(feature)/unit add distros
This commit is contained in:
commit
e9b8e57566
396
README.md
396
README.md
@ -17,187 +17,205 @@ It supports all platforms supported by [NGINX Open Source](https://nginx.org/en/
|
||||
|
||||
**NGINX Open Source:**
|
||||
|
||||
CentOS:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
RedHat:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
Debian:
|
||||
versions:
|
||||
- jessie
|
||||
- stretch
|
||||
Ubuntu:
|
||||
versions:
|
||||
- trusty
|
||||
- xenial
|
||||
- zesty
|
||||
SUSE/SLES:
|
||||
versions:
|
||||
- 12
|
||||
```yaml
|
||||
CentOS:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
RedHat:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
Debian:
|
||||
versions:
|
||||
- jessie
|
||||
- stretch
|
||||
Ubuntu:
|
||||
versions:
|
||||
- trusty
|
||||
- xenial
|
||||
- artful
|
||||
- bionic
|
||||
SUSE/SLES:
|
||||
versions:
|
||||
- 12
|
||||
FreeBSD:
|
||||
versions:
|
||||
- 10
|
||||
- 11
|
||||
```
|
||||
|
||||
**NGINX Plus:**
|
||||
|
||||
Debian:
|
||||
versions:
|
||||
- jessie
|
||||
- stretch
|
||||
Ubuntu:
|
||||
versions:
|
||||
- trusty
|
||||
- xenial
|
||||
- zesty
|
||||
- artful
|
||||
CentOS:
|
||||
versions:
|
||||
- 6.5
|
||||
- 7
|
||||
RedHat:
|
||||
versions:
|
||||
- 6.5
|
||||
- 7
|
||||
Oracle Linux:
|
||||
versions:
|
||||
- 6.5
|
||||
- 7
|
||||
Amazon Linux:
|
||||
versions:
|
||||
- 2016.09
|
||||
SUSE/SLES:
|
||||
versions:
|
||||
- 12
|
||||
FreeBSD:
|
||||
versions:
|
||||
- 10.3
|
||||
- 11
|
||||
```yaml
|
||||
CentOS:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
RedHat:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
Debian:
|
||||
versions:
|
||||
- jessie
|
||||
- stretch
|
||||
Ubuntu:
|
||||
versions:
|
||||
- trusty
|
||||
- xenial
|
||||
- artful
|
||||
- bionic
|
||||
Oracle Linux:
|
||||
versions:
|
||||
- 6.5
|
||||
- 7
|
||||
Amazon Linux:
|
||||
versions:
|
||||
- 2018.03
|
||||
SUSE/SLES:
|
||||
versions:
|
||||
- 12
|
||||
FreeBSD:
|
||||
versions:
|
||||
- 10
|
||||
- 11
|
||||
```
|
||||
|
||||
**NGINX Unit:**
|
||||
|
||||
CentOS:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
RedHat:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
Debian:
|
||||
versions:
|
||||
- jessie
|
||||
- stretch
|
||||
Ubuntu:
|
||||
versions:
|
||||
- xenial
|
||||
- artful
|
||||
- bionic
|
||||
Amazon Linux:
|
||||
versions:
|
||||
- 2016.09
|
||||
```yaml
|
||||
CentOS:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
RedHat:
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
Debian:
|
||||
versions:
|
||||
- jessie
|
||||
- stretch
|
||||
Ubuntu:
|
||||
versions:
|
||||
- xenial
|
||||
- artful
|
||||
- bionic
|
||||
Amazon Linux:
|
||||
versions:
|
||||
- 2018.03
|
||||
- 2
|
||||
FreeBSD:
|
||||
versions:
|
||||
- 10
|
||||
- 11
|
||||
```
|
||||
|
||||
Role Variables
|
||||
--------------
|
||||
|
||||
This role has multiple variables. The defaults for all these variables are the following:
|
||||
|
||||
---
|
||||
# Install NGINX.
|
||||
# Default is true.
|
||||
nginx_enable: true
|
||||
```yaml
|
||||
---
|
||||
# Install NGINX.
|
||||
# Default is true.
|
||||
nginx_enable: true
|
||||
|
||||
# Specify which version of NGINX you want to install.
|
||||
# Options are 'opensource' or 'plus'.
|
||||
# Default is 'opensource'.
|
||||
type: opensource
|
||||
# Specify which version of NGINX you want to install.
|
||||
# Options are 'opensource' or 'plus'.
|
||||
# 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 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 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
|
||||
# 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 NGINX JavaScript, Perl, ModSecurity WAF (NGINX Plus only), GeoIP, Image-Filter, RTMP Media Streaming, and/or XSLT modules.
|
||||
# Default is false.
|
||||
modules:
|
||||
njs: false
|
||||
perl: false
|
||||
waf: false
|
||||
geoip: false
|
||||
image_filter: false
|
||||
rtmp: false
|
||||
xslt: false
|
||||
# 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
|
||||
perl: false
|
||||
waf: false
|
||||
geoip: false
|
||||
image_filter: false
|
||||
rtmp: false
|
||||
xslt: false
|
||||
|
||||
# Install NGINX Amplify.
|
||||
# Use your NGINX Amplify API key.
|
||||
# Default is null.
|
||||
amplify_enable: false
|
||||
amplify_key: null
|
||||
# Install NGINX Amplify.
|
||||
# Use your NGINX Amplify API key.
|
||||
# Default is null.
|
||||
amplify_enable: false
|
||||
amplify_key: null
|
||||
|
||||
# Enable NGINX status data.
|
||||
# Will enable 'stub_status' in NGINX Open Source and 'status' in NGINX Plus.
|
||||
# Default is false.
|
||||
status_enable: false
|
||||
# Enable NGINX status data.
|
||||
# Will enable 'stub_status' in NGINX Open Source and 'status' in NGINX Plus.
|
||||
# Default is false.
|
||||
status_enable: false
|
||||
|
||||
# Enable NGINX Plus REST API, write access to the REST API, and NGINX Plus dashboard.
|
||||
# Default is false.
|
||||
rest_api_enable: false
|
||||
rest_api_write: false
|
||||
rest_api_dashboard: false
|
||||
# Enable NGINX Plus REST API, write access to the REST API, and NGINX Plus dashboard.
|
||||
# Default is false.
|
||||
rest_api_enable: false
|
||||
rest_api_write: false
|
||||
rest_api_dashboard: false
|
||||
|
||||
# Location of your NGINX Plus license in your local machine.
|
||||
# Default is the files folder within the NGINX Ansible role.
|
||||
license:
|
||||
certificate: license/nginx-repo.crt
|
||||
key: license/nginx-repo.key
|
||||
# Location of your NGINX Plus license in your local machine.
|
||||
# Default is the files folder within the NGINX Ansible role.
|
||||
license:
|
||||
certificate: license/nginx-repo.crt
|
||||
key: license/nginx-repo.key
|
||||
|
||||
# Enable uploading NGINX configuration files to your system.
|
||||
# Default for uploading files is false.
|
||||
# Default location of files is the files folder within the NGINX Ansible role.
|
||||
main_push_enable: false
|
||||
main_push_location: conf/nginx.conf
|
||||
http_push_enable: false
|
||||
http_push_location: conf/http/*.conf
|
||||
stream_push_enable: false
|
||||
stream_push_location: conf/stream/*.conf
|
||||
# Enable uploading NGINX configuration files to your system.
|
||||
# Default for uploading files is false.
|
||||
# Default location of files is the files folder within the NGINX Ansible role.
|
||||
main_push_enable: false
|
||||
main_push_location: conf/nginx.conf
|
||||
http_push_enable: false
|
||||
http_push_location: conf/http/*.conf
|
||||
stream_push_enable: false
|
||||
stream_push_location: conf/stream/*.conf
|
||||
|
||||
# Configuration variables to create a templated NGINX configuration.
|
||||
# Defaults are the values found in a fresh NGINX installation.
|
||||
main_template_enable: false
|
||||
main_template_user: nginx
|
||||
main_template_worker_processes: auto
|
||||
main_template_error_level: warn
|
||||
main_template_worker_connections: 1024
|
||||
http_template_enable: false
|
||||
http_template_keepalive_timeout: 65
|
||||
http_template_listen: 80
|
||||
http_template_server_name: localhost
|
||||
stream_template_enable: false
|
||||
stream_template_listen: 12345
|
||||
# Configuration variables to create a templated NGINX configuration.
|
||||
# Defaults are the values found in a fresh NGINX installation.
|
||||
main_template_enable: false
|
||||
main_template_user: nginx
|
||||
main_template_worker_processes: auto
|
||||
main_template_error_level: warn
|
||||
main_template_worker_connections: 1024
|
||||
http_template_enable: false
|
||||
http_template_keepalive_timeout: 65
|
||||
http_template_listen: 80
|
||||
http_template_server_name: localhost
|
||||
stream_template_enable: false
|
||||
stream_template_listen: 12345
|
||||
|
||||
# Install NGINX Unit and NGINX Unit modules.
|
||||
# Use a list of supported NGINX Unit modules.
|
||||
# Default is false.
|
||||
unit_enable: false
|
||||
unit_modules: null
|
||||
# Install NGINX Unit and NGINX Unit modules.
|
||||
# Use a list of supported NGINX Unit modules.
|
||||
# Default is false.
|
||||
unit_enable: false
|
||||
unit_modules: null
|
||||
```
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
@ -209,43 +227,51 @@ Example Playbook
|
||||
|
||||
This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost and installing the open source version of NGINX.
|
||||
|
||||
---
|
||||
- hosts: localhost
|
||||
become: true
|
||||
roles:
|
||||
- role: nginxinc.nginx
|
||||
```yaml
|
||||
---
|
||||
- hosts: localhost
|
||||
become: true
|
||||
roles:
|
||||
- role: nginxinc.nginx
|
||||
```
|
||||
|
||||
This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost and installing NGINX Plus.
|
||||
|
||||
---
|
||||
- hosts: localhost
|
||||
become: true
|
||||
roles:
|
||||
- role: nginxinc.nginx
|
||||
vars:
|
||||
type: plus
|
||||
```yaml
|
||||
---
|
||||
- hosts: localhost
|
||||
become: true
|
||||
roles:
|
||||
- role: nginxinc.nginx
|
||||
vars:
|
||||
type: plus
|
||||
```
|
||||
|
||||
This is a sample playbook file for deploying the Ansible Galaxy NGINX role to a dynamic inventory containing the `nginx` tag.
|
||||
|
||||
---
|
||||
- hosts: tag_nginx
|
||||
remote_user: root
|
||||
roles:
|
||||
- role: nginxinc.nginx
|
||||
```yml
|
||||
---
|
||||
- hosts: tag_nginx
|
||||
remote_user: root
|
||||
roles:
|
||||
- role: nginxinc.nginx
|
||||
```
|
||||
|
||||
This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost to install NGINX Unit and the PHP/Perl NGINX Unit language modules.
|
||||
|
||||
---
|
||||
- hosts: localhost
|
||||
become: true
|
||||
roles:
|
||||
- role: nginxinc.nginx
|
||||
vars:
|
||||
nginx_enable: false
|
||||
unit_enable: true
|
||||
unit_modules:
|
||||
- unit-php
|
||||
- unit-perl
|
||||
```yml
|
||||
---
|
||||
- hosts: localhost
|
||||
become: true
|
||||
roles:
|
||||
- role: nginxinc.nginx
|
||||
vars:
|
||||
nginx_enable: false
|
||||
unit_enable: true
|
||||
unit_modules:
|
||||
- unit-php
|
||||
- unit-perl
|
||||
```
|
||||
|
||||
To run any of the above sample playbooks create a `setup-nginx.yml` file and paste the contents. Executing the Ansible Playbook is then as simple as executing `ansible-playbook setup-nginx.yml`.
|
||||
|
||||
|
@ -19,12 +19,12 @@ install_from: 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
|
||||
- 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/
|
||||
- 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
|
||||
- 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'.
|
||||
|
@ -1,17 +1,20 @@
|
||||
---
|
||||
# Start NGINX
|
||||
- name: "(Handler: All OSs) Start NGINX"
|
||||
service:
|
||||
name: nginx
|
||||
state: started
|
||||
|
||||
# Reload NGINX
|
||||
- name: "(Handler: All OSs) Reload NGINX"
|
||||
service:
|
||||
name: nginx
|
||||
state: reloaded
|
||||
|
||||
- name: "(Handler: All OSs) Start NGINX Unit"
|
||||
- name: "(Handler: Debian/Ubuntu/CentOS/RedHat) Start NGINX Unit"
|
||||
service:
|
||||
name: unit
|
||||
state: started
|
||||
|
||||
- name: "(Handler: FreeBSD) Start NGINX Unit"
|
||||
service:
|
||||
name: unitd
|
||||
state: started
|
||||
|
@ -1,7 +1,8 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: Alessandro Fael Garcia
|
||||
description: Official Ansible role for NGINX
|
||||
company: NGINX Inc
|
||||
company: NGINX, Inc.
|
||||
|
||||
license: Apache License, Version 2.0
|
||||
|
||||
@ -10,15 +11,14 @@ galaxy_info:
|
||||
platforms:
|
||||
- name: Debian
|
||||
versions:
|
||||
- wheezy
|
||||
- jessie
|
||||
- stretch
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
- precise
|
||||
- trusty
|
||||
- xenial
|
||||
- yakkety
|
||||
- artful
|
||||
- bionic
|
||||
- name: EL
|
||||
versions:
|
||||
- 6
|
||||
@ -26,6 +26,10 @@ galaxy_info:
|
||||
- name: SLES
|
||||
versions:
|
||||
- 12
|
||||
- name: FreeBSD
|
||||
versions:
|
||||
- 10
|
||||
- 11
|
||||
|
||||
galaxy_tags:
|
||||
- nginx
|
||||
|
@ -1,7 +1,16 @@
|
||||
---
|
||||
- name: "(Install: All OSs) Install NGINX Unit Modules"
|
||||
- name: "(Install: Debian/Ubuntu/CentOS/RedHat) Install NGINX Unit Modules"
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
with_items: "{{ unit_modules }}"
|
||||
notify: "(Handler: All OSs) Start NGINX Unit"
|
||||
when: ansible_os_family != "FreeBSD"
|
||||
notify: "(Handler: Debian/Ubuntu/CentOS/RedHat) Start NGINX Unit"
|
||||
|
||||
- name: "(Install: FreeBSD) Install NGINX Unit Modules"
|
||||
portinstall:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
with_items: "{{ unit_modules }}"
|
||||
when: ansible_os_family == "FreeBSD"
|
||||
notify: "(Handler: FreeBSD) Start NGINX Unit"
|
||||
|
@ -5,11 +5,22 @@
|
||||
- import_tasks: setup-redhat.yml
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- name: "(Install: All OSs) Install NGINX Unit"
|
||||
- import_tasks: setup-freebsd.yml
|
||||
when: ansible_os_family == "FreeBSD"
|
||||
|
||||
- name: "(Install: Debian/Ubuntu/CentOS/RedHat) Install NGINX Unit"
|
||||
package:
|
||||
name: unit
|
||||
state: present
|
||||
notify: "(Handler: All OSs) Start NGINX Unit"
|
||||
when: ansible_os_family != "FreeBSD"
|
||||
notify: "(Handler: Debian/Ubuntu/CentOS/RedHat) Start NGINX Unit"
|
||||
|
||||
- name: "(Install: FreeBSD) Install NGINX Unit"
|
||||
portinstall:
|
||||
name: unit
|
||||
state: present
|
||||
when: ansible_os_family == "FreeBSD"
|
||||
notify: "(Handler: FreeBSD) Start NGINX Unit"
|
||||
|
||||
- import_tasks: install-modules.yml
|
||||
when: unit_modules is defined and unit_modules
|
||||
|
10
tasks/unit/setup-freebsd.yml
Normal file
10
tasks/unit/setup-freebsd.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: "(Install: FreeBSD) Fetch Ports"
|
||||
command: portsnap fetch --interactive
|
||||
args:
|
||||
creates: /var/db/portsnap/INDEX
|
||||
|
||||
- name: "(Install: FreeBSD) Extract Ports"
|
||||
command: portsnap extract
|
||||
args:
|
||||
creates: /usr/ports
|
@ -11,7 +11,7 @@
|
||||
- name: "(Install: Amazon Linux) Add NGINX Unit Repository"
|
||||
yum_repository:
|
||||
name: unit
|
||||
baseurl: https://packages.nginx.org/unit/amzn/$releasever/$basearch/
|
||||
baseurl: https://packages.nginx.org/unit/amzn{{ (ansible_distribution_version == "2") | ternary('2', '') }}/$releasever/$basearch/
|
||||
description: NGINX Unit Repository
|
||||
enabled: yes
|
||||
gpgcheck: yes
|
||||
|
Loading…
Reference in New Issue
Block a user