Merge pull request #41 from nginxinc/(feature)/unit-add-distros

(feature)/unit add distros
This commit is contained in:
Alessandro Fael Garcia 2018-07-19 11:38:43 -07:00 committed by GitHub
commit e9b8e57566
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 264 additions and 201 deletions

View File

@ -17,6 +17,7 @@ It supports all platforms supported by [NGINX Open Source](https://nginx.org/en/
**NGINX Open Source:** **NGINX Open Source:**
```yaml
CentOS: CentOS:
versions: versions:
- 6 - 6
@ -33,13 +34,28 @@ It supports all platforms supported by [NGINX Open Source](https://nginx.org/en/
versions: versions:
- trusty - trusty
- xenial - xenial
- zesty - artful
- bionic
SUSE/SLES: SUSE/SLES:
versions: versions:
- 12 - 12
FreeBSD:
versions:
- 10
- 11
```
**NGINX Plus:** **NGINX Plus:**
```yaml
CentOS:
versions:
- 6
- 7
RedHat:
versions:
- 6
- 7
Debian: Debian:
versions: versions:
- jessie - jessie
@ -48,33 +64,27 @@ It supports all platforms supported by [NGINX Open Source](https://nginx.org/en/
versions: versions:
- trusty - trusty
- xenial - xenial
- zesty
- artful - artful
CentOS: - bionic
versions:
- 6.5
- 7
RedHat:
versions:
- 6.5
- 7
Oracle Linux: Oracle Linux:
versions: versions:
- 6.5 - 6.5
- 7 - 7
Amazon Linux: Amazon Linux:
versions: versions:
- 2016.09 - 2018.03
SUSE/SLES: SUSE/SLES:
versions: versions:
- 12 - 12
FreeBSD: FreeBSD:
versions: versions:
- 10.3 - 10
- 11 - 11
```
**NGINX Unit:** **NGINX Unit:**
```yaml
CentOS: CentOS:
versions: versions:
- 6 - 6
@ -94,13 +104,20 @@ It supports all platforms supported by [NGINX Open Source](https://nginx.org/en/
- bionic - bionic
Amazon Linux: Amazon Linux:
versions: versions:
- 2016.09 - 2018.03
- 2
FreeBSD:
versions:
- 10
- 11
```
Role Variables Role Variables
-------------- --------------
This role has multiple variables. The defaults for all these variables are the following: This role has multiple variables. The defaults for all these variables are the following:
```yaml
--- ---
# Install NGINX. # Install NGINX.
# Default is true. # Default is true.
@ -198,6 +215,7 @@ This role has multiple variables. The defaults for all these variables are the f
# Default is false. # Default is false.
unit_enable: false unit_enable: false
unit_modules: null unit_modules: null
```
Dependencies Dependencies
------------ ------------
@ -209,14 +227,17 @@ 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. This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost and installing the open source version of NGINX.
```yaml
--- ---
- hosts: localhost - hosts: localhost
become: true become: true
roles: roles:
- role: nginxinc.nginx - role: nginxinc.nginx
```
This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost and installing NGINX Plus. This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost and installing NGINX Plus.
```yaml
--- ---
- hosts: localhost - hosts: localhost
become: true become: true
@ -224,17 +245,21 @@ This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a
- role: nginxinc.nginx - role: nginxinc.nginx
vars: vars:
type: plus type: plus
```
This is a sample playbook file for deploying the Ansible Galaxy NGINX role to a dynamic inventory containing the `nginx` tag. This is a sample playbook file for deploying the Ansible Galaxy NGINX role to a dynamic inventory containing the `nginx` tag.
```yml
--- ---
- hosts: tag_nginx - hosts: tag_nginx
remote_user: root remote_user: root
roles: roles:
- role: nginxinc.nginx - 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. 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.
```yml
--- ---
- hosts: localhost - hosts: localhost
become: true become: true
@ -246,6 +271,7 @@ This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a
unit_modules: unit_modules:
- unit-php - unit-php
- unit-perl - 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`. 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`.

View File

@ -1,17 +1,20 @@
--- ---
# Start NGINX
- name: "(Handler: All OSs) Start NGINX" - name: "(Handler: All OSs) Start NGINX"
service: service:
name: nginx name: nginx
state: started state: started
# Reload NGINX
- name: "(Handler: All OSs) Reload NGINX" - name: "(Handler: All OSs) Reload NGINX"
service: service:
name: nginx name: nginx
state: reloaded state: reloaded
- name: "(Handler: All OSs) Start NGINX Unit" - name: "(Handler: Debian/Ubuntu/CentOS/RedHat) Start NGINX Unit"
service: service:
name: unit name: unit
state: started state: started
- name: "(Handler: FreeBSD) Start NGINX Unit"
service:
name: unitd
state: started

View File

@ -1,7 +1,8 @@
---
galaxy_info: galaxy_info:
author: Alessandro Fael Garcia author: Alessandro Fael Garcia
description: Official Ansible role for NGINX description: Official Ansible role for NGINX
company: NGINX Inc company: NGINX, Inc.
license: Apache License, Version 2.0 license: Apache License, Version 2.0
@ -10,15 +11,14 @@ galaxy_info:
platforms: platforms:
- name: Debian - name: Debian
versions: versions:
- wheezy
- jessie - jessie
- stretch - stretch
- name: Ubuntu - name: Ubuntu
versions: versions:
- precise
- trusty - trusty
- xenial - xenial
- yakkety - artful
- bionic
- name: EL - name: EL
versions: versions:
- 6 - 6
@ -26,6 +26,10 @@ galaxy_info:
- name: SLES - name: SLES
versions: versions:
- 12 - 12
- name: FreeBSD
versions:
- 10
- 11
galaxy_tags: galaxy_tags:
- nginx - nginx

View File

@ -1,7 +1,16 @@
--- ---
- name: "(Install: All OSs) Install NGINX Unit Modules" - name: "(Install: Debian/Ubuntu/CentOS/RedHat) Install NGINX Unit Modules"
package: package:
name: "{{ item }}" name: "{{ item }}"
state: present state: present
with_items: "{{ unit_modules }}" 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"

View File

@ -5,11 +5,22 @@
- import_tasks: setup-redhat.yml - import_tasks: setup-redhat.yml
when: ansible_os_family == "RedHat" 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: package:
name: unit name: unit
state: present 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 - import_tasks: install-modules.yml
when: unit_modules is defined and unit_modules when: unit_modules is defined and unit_modules

View 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

View File

@ -11,7 +11,7 @@
- name: "(Install: Amazon Linux) Add NGINX Unit Repository" - name: "(Install: Amazon Linux) Add NGINX Unit Repository"
yum_repository: yum_repository:
name: unit 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 description: NGINX Unit Repository
enabled: yes enabled: yes
gpgcheck: yes gpgcheck: yes