ansible-role-nginx/README.md
2018-01-26 11:00:26 -08:00

192 lines
4.9 KiB
Markdown

Ansible NGINX Role
==================
[![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)
This role installs open source NGINX or NGINX Plus on your target host.
Requirements
------------
This role was developed using Ansible 2.4.0.0. Backwards compatibility is not guaranteed.
Use `ansible-galaxy install nginxinc.nginx` to install the role on your system.
It supports all platforms supported by [open source NGINX](https://nginx.org/en/linux_packages.html#mainline) and [NGINX Plus](https://www.nginx.com/products/technical-specs/):
**Open Source NGINX:**
CentOS:
versions:
- 6
- 7
RedHat:
versions:
- 6
- 7
Debian:
versions:
- jessie
- stretch
Ubuntu:
versions:
- trusty
- xenial
- zesty
SUSE/SLES:
versions:
- 12
**NGINX Plus:**
CentOS:
versions:
- 6
- 7
RedHat:
versions:
- 6
- 7
Debian:
versions:
- wheezy
- jessie
- stretch
Ubuntu:
versions:
- trusty
- xenial
- zesty
SUSE/SLES:
versions:
- 12
FreeBSD:
versions:
- 10.3
- 11
Oracle Linux:
versions:
- 6.5
- 7
Amazon Linux:
versions:
- 2016.09
Role Variables
--------------
This role has multiple variables. The defaults for all these variables are the following:
---
# Specify which version of NGINX you want to install.
# Options are 'opensource' or 'plus'.
# Default is 'opensource'.
type: opensource
# Specify which branch of Open Source NGINX you want to install.
# Options are 'mainline' or 'stable'.
# Default is stable.
branch: mainline
# Install nginscript, perl and/or waf modules.
# Default is false.
modules:
njs: false
perl: false
waf: false
# Install NGINX Amplify.
# Use your NGINX Amplify API key.
# Default is null.
amplify: null
# Enable NGINX status data.
# Will enable 'stub_status' in open source NGINX and 'status' in NGINX Plus.
# Default is false.
status: false
# Enable NGINX Plus REST API and dashboard.
# Default is false for all three variables.
api:
enable: false
write: false
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 the configuration files you wish to upload to NGINX.
# Default is the files folder within the NGINX Ansible role.
configuration_files:
enable: false
main: conf/nginx.conf
http: conf/http/*.conf
# Configuration variables to create a templated NGINX configuration.
# Defaults are the values found in a fresh NGINX installation.
configuration_templates:
enable: false
opensource:
user: nginx
worker_processes: 1
error_level: warn
worker_connections: 1024
keepalive_timeout: 65
listen: 80
server_name: localhost
plus:
user: nginx
worker_processes: auto
error_level: notice
worker_connections: 1024
keepalive_timeout: 65
listen: 80
server_name: localhost
Dependencies
------------
None
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
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
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
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`.
License
-------
[Apache License, Version 2.0](https://github.com/nginxinc/ansible-role-nginx/blob/master/LICENSE)
Author Information
------------------
Alessandro Fael Garcia
[NGINX Inc](https://www.nginx.com/)