Multiple changes

* Add option to enable REST API
* Add option to enable live dashboard
* Add option to install WAF module
* Load modules in nginx.conf
* Improve version check for RedHat distros
This commit is contained in:
Alessandro Fael Garcia 2018-01-19 10:27:47 -08:00
parent 0e40a9e00f
commit 78a7e3efeb
13 changed files with 113 additions and 47 deletions

View File

@ -7,12 +7,12 @@ type: opensource
# Options are 'mainline' or 'stable'. # Options are 'mainline' or 'stable'.
# Default is stable. # Default is stable.
branch: mainline branch: mainline
# Install nginscript module. # Install nginscript, perl and/or waf modules.
# Default is false. # Default is false.
modules:
njs: false njs: false
# Install Perl module.
# Default is false.
perl: false perl: false
waf: false
# Install NGINX Amplify. # Install NGINX Amplify.
# Use your NGINX Amplify API key. # Use your NGINX Amplify API key.
# Default is null. # Default is null.
@ -21,6 +21,12 @@ amplify: null
# Will enable 'stub_status' in open source NGINX and 'status' in NGINX Plus. # Will enable 'stub_status' in open source NGINX and 'status' in NGINX Plus.
# Default is false. # Default is false.
status: false status: false
# Enable NGINX Plus REST API and dashboard.
# Default is false.
api:
enable: false
write: false
dashboard: false
# Location of your NGINX Plus license in your local machine. # Location of your NGINX Plus license in your local machine.
# Default is the files folder within the NGINX Ansible role. # Default is the files folder within the NGINX Ansible role.
license: license:

View File

@ -1,5 +1,5 @@
--- ---
- import_tasks: ../conf/nginx-status.yml - import_tasks: ../conf/setup-status.yml
- name: "(All OSs) Download NGINX Amplify Script" - name: "(All OSs) Download NGINX Amplify Script"
get_url: get_url:

6
tasks/conf/setup-api.yml Normal file
View File

@ -0,0 +1,6 @@
---
- name: "(All OSs) Setup NGINX Plus API"
template:
src: api.j2
dest: /etc/nginx/conf.d/api.conf
notify: "(All OSs) Reload NGINX"

View File

@ -6,7 +6,6 @@
block: | block: |
server { server {
listen 127.0.0.1:80; listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status { location /nginx_status {
stub_status on; stub_status on;
allow 127.0.0.1; allow 127.0.0.1;
@ -23,7 +22,6 @@
block: | block: |
server { server {
listen 127.0.0.1:80; listen 127.0.0.1:80;
server_name 127.0.0.1;
location /status { location /status {
status; status;
allow 127.0.0.1; allow 127.0.0.1;

View File

@ -11,8 +11,20 @@
- import_tasks: plus/install-plus.yml - import_tasks: plus/install-plus.yml
when: type == "plus" when: type == "plus"
- import_tasks: conf/nginx-status.yml - import_tasks: modules/install-njs.yml
when: modules.njs
- import_tasks: modules/install-perl.yml
when: modules.perl
- import_tasks: modules/install-waf.yml
when: modules.waf and type == "plus"
- import_tasks: conf/setup-status.yml
when: status when: status
- import_tasks: conf/setup-api.yml
when: api.enable and type == "plus"
- import_tasks: amplify/install-amplify.yml - import_tasks: amplify/install-amplify.yml
when: amplify is defined and amplify when: amplify is defined and amplify

View File

@ -0,0 +1,21 @@
---
- name: "(All OSs) Install NGINX NJS Module"
package:
name: nginx-module-njs
state: present
when: type == "opensource"
- name: "(All OSs) Install NGINX NJS Module"
package:
name: nginx-plus-module-njs
state: present
when: type == "plus"
- name: "(All OSs) Load NGINX NJS Module"
blockinfile:
path: /etc/nginx/nginx.conf
insertbefore: BOF
block: |
load_module modules/ngx_http_js_module.so;
load_module modules/ngx_stream_js_module.so;
notify: "(All OSs) Reload NGINX"

View File

@ -0,0 +1,19 @@
---
- name: "(All OSs) Install NGINX Perl Module"
package:
name: nginx-module-perl
state: present
when: type == "opensource"
- name: "(All OSs) Install NGINX Perl Module"
package:
name: nginx-plus-module-perl
state: present
when: type == "plus"
- name: "(All OSs) Load NGINX Perl Module"
lineinfile:
path: /etc/nginx/nginx.conf
insertbefore: BOF
line: load_module modules/ngx_http_perl.so;
notify: "(All OSs) Reload NGINX"

View File

@ -0,0 +1,13 @@
---
- name: "(All OSs) Install NGINX Plus WAF Module"
package:
name: nginx-plus-module-modsecurity
state: present
when: waf
- name: "(All OSs) Load NGINX Plus WAF Module"
lineinfile:
path: /etc/nginx/nginx.conf
insertbefore: BOF
line: load_module modules/ngx_http_modsecurity_module.so;
notify: "(All OSs) Reload NGINX"

View File

@ -13,15 +13,3 @@
name: nginx name: nginx
state: present state: present
notify: "(All OSs) Start NGINX" notify: "(All OSs) Start NGINX"
- name: "(All OSs) Install NGINX NJS Module"
package:
name: nginx-module-njs
state: present
when: njs
- name: "(All OSs) Install NGINX Perl Module"
package:
name: nginx-module-perl
state: present
when: perl

View File

@ -18,15 +18,3 @@
name: nginx-plus name: nginx-plus
state: present state: present
notify: "(All OSs) Start NGINX" notify: "(All OSs) Start NGINX"
- name: "(All OSs) Install NGINX NJS Module"
package:
name: nginx-plus-module-njs
state: present
when: njs
- name: "(All OSs) Install NGINX Perl Module"
package:
name: nginx-plus-module-perl
state: present
when: perl

View File

@ -7,12 +7,12 @@
- name: "(CentOS/RedHat/Amazon Linux/Oracle Linux) Gather Distribution Version" - name: "(CentOS/RedHat/Amazon Linux/Oracle Linux) Gather Distribution Version"
set_fact: set_fact:
version: "7" version: "7"
when: ansible_distribution_major_version|int >= 7 and ansible_distribution_major_version|int <= 7.3 when: ansible_distribution_major_version|float >= 7.0 and ansible_distribution_major_version|float <= 7.3
- name: "(CentOS/RedHat/Amazon Linux/Oracle Linux) Gather Distribution Version" - name: "(CentOS/RedHat/Amazon Linux/Oracle Linux) Gather Distribution Version"
set_fact: set_fact:
version: "7.4" version: "7.4"
when: ansible_distribution_major_version|int == 7.4 when: ansible_distribution_major_version|float == 7.4
- name: "(CentOS/RedHat/Amazon Linux/Oracle Linux) Gather Distribution Version" - name: "(CentOS/RedHat/Amazon Linux/Oracle Linux) Gather Distribution Version"
set_fact: set_fact:

View File

15
templates/api.j2 Normal file
View File

@ -0,0 +1,15 @@
server {
listen 8080;
location /api {
{% if api.write %}
api write=on;
{% else %}
api;
{% endif %}
}
{% if api.dashboard %}
location = /dashboard.html {
root /usr/share/nginx/html;
}
{% endif %}
}