commit
fa9f2ae5af
45
.travis.yml
45
.travis.yml
@ -15,6 +15,9 @@ env:
|
|||||||
- distribution: centos
|
- distribution: centos
|
||||||
version: 6
|
version: 6
|
||||||
playbook: template
|
playbook: template
|
||||||
|
- distribution: centos
|
||||||
|
version: 6
|
||||||
|
playbook: unit
|
||||||
- distribution: centos
|
- distribution: centos
|
||||||
version: 7
|
version: 7
|
||||||
playbook: basic
|
playbook: basic
|
||||||
@ -27,6 +30,9 @@ env:
|
|||||||
- distribution: centos
|
- distribution: centos
|
||||||
version: 7
|
version: 7
|
||||||
playbook: push
|
playbook: push
|
||||||
|
- distribution: centos
|
||||||
|
version: 7
|
||||||
|
playbook: unit
|
||||||
- distribution: debian
|
- distribution: debian
|
||||||
version: jessie
|
version: jessie
|
||||||
playbook: basic
|
playbook: basic
|
||||||
@ -39,6 +45,9 @@ env:
|
|||||||
- distribution: debian
|
- distribution: debian
|
||||||
version: jessie
|
version: jessie
|
||||||
playbook: push
|
playbook: push
|
||||||
|
- distribution: debian
|
||||||
|
version: jessie
|
||||||
|
playbook: unit
|
||||||
- distribution: debian
|
- distribution: debian
|
||||||
version: stretch
|
version: stretch
|
||||||
playbook: basic
|
playbook: basic
|
||||||
@ -51,6 +60,9 @@ env:
|
|||||||
- distribution: debian
|
- distribution: debian
|
||||||
version: stretch
|
version: stretch
|
||||||
playbook: push
|
playbook: push
|
||||||
|
- distribution: debian
|
||||||
|
version: stretch
|
||||||
|
playbook: unit
|
||||||
- distribution: ubuntu
|
- distribution: ubuntu
|
||||||
version: trusty
|
version: trusty
|
||||||
playbook: basic
|
playbook: basic
|
||||||
@ -75,6 +87,39 @@ env:
|
|||||||
- distribution: ubuntu
|
- distribution: ubuntu
|
||||||
version: xenial
|
version: xenial
|
||||||
playbook: push
|
playbook: push
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: xenial
|
||||||
|
playbook: unit
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: artful
|
||||||
|
playbook: basic
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: artful
|
||||||
|
playbook: push
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: artful
|
||||||
|
playbook: stable
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: artful
|
||||||
|
playbook: template
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: artful
|
||||||
|
playbook: unit
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: bionic
|
||||||
|
playbook: basic
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: bionic
|
||||||
|
playbook: push
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: bionic
|
||||||
|
playbook: stable
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: bionic
|
||||||
|
playbook: template
|
||||||
|
- distribution: ubuntu
|
||||||
|
version: bionic
|
||||||
|
playbook: unit
|
||||||
before_install:
|
before_install:
|
||||||
- 'sudo docker pull ${distribution}:${version}'
|
- 'sudo docker pull ${distribution}:${version}'
|
||||||
- 'sudo docker build --no-cache --rm --file=tests/dockerfiles/Dockerfile.${distribution}-${version} --tag=${distribution}-${version}:ansible tests'
|
- 'sudo docker build --no-cache --rm --file=tests/dockerfiles/Dockerfile.${distribution}-${version} --tag=${distribution}-${version}:ansible tests'
|
||||||
|
70
README.md
70
README.md
@ -4,7 +4,7 @@ Ansible NGINX Role
|
|||||||
[![Ansible Galaxy](https://img.shields.io/badge/galaxy-nginxinc.nginx-5bbdbf.svg)](https://galaxy.ansible.com/nginxinc/nginx)
|
[![Ansible Galaxy](https://img.shields.io/badge/galaxy-nginxinc.nginx-5bbdbf.svg)](https://galaxy.ansible.com/nginxinc/nginx)
|
||||||
[![Build Status](https://travis-ci.org/nginxinc/ansible-role-nginx.svg?branch=master)](https://travis-ci.org/nginxinc/ansible-role-nginx)
|
[![Build Status](https://travis-ci.org/nginxinc/ansible-role-nginx.svg?branch=master)](https://travis-ci.org/nginxinc/ansible-role-nginx)
|
||||||
|
|
||||||
This role installs NGINX Open Source or NGINX Plus on your target host.
|
This role installs NGINX Open Source, NGINX Plus, or NGINX Unit on your target host.
|
||||||
|
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
@ -40,6 +40,41 @@ It supports all platforms supported by [NGINX Open Source](https://nginx.org/en/
|
|||||||
|
|
||||||
**NGINX Plus:**
|
**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
|
||||||
|
|
||||||
|
**NGINX Unit:**
|
||||||
|
|
||||||
CentOS:
|
CentOS:
|
||||||
versions:
|
versions:
|
||||||
- 6
|
- 6
|
||||||
@ -50,25 +85,13 @@ It supports all platforms supported by [NGINX Open Source](https://nginx.org/en/
|
|||||||
- 7
|
- 7
|
||||||
Debian:
|
Debian:
|
||||||
versions:
|
versions:
|
||||||
- wheezy
|
|
||||||
- jessie
|
- jessie
|
||||||
- stretch
|
- stretch
|
||||||
Ubuntu:
|
Ubuntu:
|
||||||
versions:
|
versions:
|
||||||
- trusty
|
|
||||||
- xenial
|
- xenial
|
||||||
- zesty
|
- artful
|
||||||
SUSE/SLES:
|
- bionic
|
||||||
versions:
|
|
||||||
- 12
|
|
||||||
FreeBSD:
|
|
||||||
versions:
|
|
||||||
- 10.3
|
|
||||||
- 11
|
|
||||||
Oracle Linux:
|
|
||||||
versions:
|
|
||||||
- 6.5
|
|
||||||
- 7
|
|
||||||
Amazon Linux:
|
Amazon Linux:
|
||||||
versions:
|
versions:
|
||||||
- 2016.09
|
- 2016.09
|
||||||
@ -108,8 +131,12 @@ This role has multiple variables. The defaults for all these variables are the f
|
|||||||
# Default is mainline.
|
# Default is mainline.
|
||||||
branch: mainline
|
branch: mainline
|
||||||
|
|
||||||
# Install NGINX JavaScript, Perl, ModSecurity WAF (NGINX Plus only), GeoIP, Image-Filter, RTMP Media Streaming, and/or XSLT modules.
|
# Install NGINX Unit and NGINX Unit packages.
|
||||||
# Default is false.
|
# Default is false.
|
||||||
|
unit_enable: false
|
||||||
|
unit_packages: false
|
||||||
|
|
||||||
|
# Install NGINX JavaScript, Perl, ModSecurity WAF (NGINX Plus only), GeoIP, Image-Filter, RTMP Media Streaming, and/or XSLT modules. # Default is false.
|
||||||
modules:
|
modules:
|
||||||
njs: false
|
njs: false
|
||||||
perl: false
|
perl: false
|
||||||
@ -200,6 +227,17 @@ This is a sample playbook file for deploying the Ansible Galaxy NGINX role to a
|
|||||||
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 all NGINX Unit language packages.
|
||||||
|
|
||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
become: true
|
||||||
|
roles:
|
||||||
|
- role: nginxinc.nginx
|
||||||
|
vars:
|
||||||
|
- unit_enable: true
|
||||||
|
- unit_packages: true
|
||||||
|
|
||||||
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`.
|
||||||
|
|
||||||
Alternatively, you can also clone this repository instead of installing it from Ansible Galaxy. If you decide to do so, replace the role variable in the previous sample playbooks from `nginxinc.nginx` to `ansible-role-nginx`.
|
Alternatively, you can also clone this repository instead of installing it from Ansible Galaxy. If you decide to do so, replace the role variable in the previous sample playbooks from `nginxinc.nginx` to `ansible-role-nginx`.
|
||||||
|
@ -28,6 +28,12 @@ nginx_repository:
|
|||||||
# Default is mainline.
|
# Default is mainline.
|
||||||
branch: mainline
|
branch: mainline
|
||||||
|
|
||||||
|
# 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 JavaScript, Perl, ModSecurity WAF (NGINX Plus only), GeoIP, Image-Filter, RTMP Media Streaming, 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.
|
# Default is false.
|
||||||
modules:
|
modules:
|
||||||
|
@ -10,3 +10,8 @@
|
|||||||
service:
|
service:
|
||||||
name: nginx
|
name: nginx
|
||||||
state: reloaded
|
state: reloaded
|
||||||
|
|
||||||
|
- name: "(Handler: All OSs) Start NGINX Unit"
|
||||||
|
service:
|
||||||
|
name: unit
|
||||||
|
state: started
|
||||||
|
@ -46,3 +46,6 @@
|
|||||||
|
|
||||||
- import_tasks: amplify/install-amplify.yml
|
- import_tasks: amplify/install-amplify.yml
|
||||||
when: amplify_enable and amplify_key is defined and amplify_key
|
when: amplify_enable and amplify_key is defined and amplify_key
|
||||||
|
|
||||||
|
- import_tasks: unit/install-unit.yml
|
||||||
|
when: unit_enable
|
||||||
|
6
tasks/unit/install-modules.yml
Normal file
6
tasks/unit/install-modules.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
- name: "(Install: All OSs) Install NGINX Unit Modules"
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
with_items: "{{ unit_modules }}"
|
||||||
|
notify: "(Handler: All OSs) Start NGINX Unit"
|
15
tasks/unit/install-unit.yml
Normal file
15
tasks/unit/install-unit.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: setup-debian.yml
|
||||||
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
|
- import_tasks: setup-redhat.yml
|
||||||
|
when: ansible_os_family == "RedHat"
|
||||||
|
|
||||||
|
- name: "(Install: All OSs) Install NGINX Unit"
|
||||||
|
package:
|
||||||
|
name: unit
|
||||||
|
state: present
|
||||||
|
notify: "(Handler: All OSs) Start NGINX Unit"
|
||||||
|
|
||||||
|
- import_tasks: install-modules.yml
|
||||||
|
when: unit_modules is defined and unit_modules
|
7
tasks/unit/setup-debian.yml
Normal file
7
tasks/unit/setup-debian.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: "(Install: Debian/Ubuntu) Add NGINX Unit Repository"
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- deb https://packages.nginx.org/unit/{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} unit
|
||||||
|
- deb-src https://packages.nginx.org/unit/{{ ansible_distribution|lower }}/ {{ ansible_distribution_release }} unit
|
18
tasks/unit/setup-redhat.yml
Normal file
18
tasks/unit/setup-redhat.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
- name: "(Install: CentOS/RedHat) Add NGINX Unit Repository"
|
||||||
|
yum_repository:
|
||||||
|
name: unit
|
||||||
|
baseurl: https://packages.nginx.org/unit/{{ (ansible_distribution == "RedHat") | ternary('rhel/', 'centos/') }}$releasever/$basearch/
|
||||||
|
description: NGINX Unit Repository
|
||||||
|
enabled: yes
|
||||||
|
gpgcheck: yes
|
||||||
|
when: ansible_distribution != "Amazon"
|
||||||
|
|
||||||
|
- name: "(Install: Amazon Linux) Add NGINX Unit Repository"
|
||||||
|
yum_repository:
|
||||||
|
name: unit
|
||||||
|
baseurl: https://packages.nginx.org/unit/amzn/$releasever/$basearch/
|
||||||
|
description: NGINX Unit Repository
|
||||||
|
enabled: yes
|
||||||
|
gpgcheck: yes
|
||||||
|
when: ansible_distribution == "Amazon"
|
15
tests/dockerfiles/Dockerfile.ubuntu-artful
Normal file
15
tests/dockerfiles/Dockerfile.ubuntu-artful
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
FROM ubuntu:artful
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y software-properties-common && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN apt-add-repository -y ppa:ansible/ansible && apt-get update && apt-get install -y \
|
||||||
|
git \
|
||||||
|
ansible \
|
||||||
|
apt-transport-https \
|
||||||
|
curl \
|
||||||
|
init \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts
|
||||||
|
|
||||||
|
ENTRYPOINT ["/sbin/init"]
|
15
tests/dockerfiles/Dockerfile.ubuntu-bionic
Normal file
15
tests/dockerfiles/Dockerfile.ubuntu-bionic
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
FROM ubuntu:bionic
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y software-properties-common && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN apt-add-repository -y ppa:ansible/ansible && apt-get update && apt-get install -y \
|
||||||
|
git \
|
||||||
|
ansible \
|
||||||
|
apt-transport-https \
|
||||||
|
curl \
|
||||||
|
init \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts
|
||||||
|
|
||||||
|
ENTRYPOINT ["/sbin/init"]
|
11
tests/playbooks/nginx-unit.yml
Normal file
11
tests/playbooks/nginx-unit.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
become: true
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- ansible-role-nginx
|
||||||
|
vars:
|
||||||
|
unit_enable: true
|
||||||
|
unit_modules:
|
||||||
|
- unit-php
|
||||||
|
- unit-perl
|
Loading…
Reference in New Issue
Block a user