idealista.nginx-role

Nginx Ansible role
This ansible role installs a Nginx server in a debian environment. Also installs lua needed for prometheus metrics.
Getting Started
These instructions will get you a copy of the role for your ansible playbook. Once launched, it will install a Nginx server in a Debian system.
Prerequisities
Minimum ansible 2.9.x.x version installed. Inventory destination should be a Debian environment.
For testing purposes, Molecule with Docker as driver.
Installing
Create or add to your roles dependency file (e.g requirements.yml):
- src: idealista.nginx_role
version: 5.0.0
name: nginx
Install the role with ansible-galaxy command:
ansible-galaxy install -p roles -r requirements.yml -f
Use in a playbook:
---
- hosts: someserver
roles:
- role: nginx
Usage
Look to the defaults vars file to see the possible configuration vars.
The server is installed using the sources adding the headers-more module and lua module. You can add/remove compile built-in and
external modules by setting nginx_builtin_modules and nginx_external_modules vars.
You can activate ssl modules by nginx_ssl_enabled var (see molecule tests as example).
To import your certificates, you need to place them at the path defined in nginx_certificates_path, they will be imported in /etc/nginx/certificates.
You can add new servers to nginx by including your server as a file or as a template, setting the server
files in the path defined by nginx_extra_servers_path or nginx_extra_servers_template_path (see molecule tests as example).
If you want to change any version do it at your risk. Some nginx versions and modules are not compatible. Known compatible versions are:
Nginx: 1.10.* + lua_module_version: 0.10.7
Nginx: 1.12.* + lua_module_version: 0.10.11
Nginx: 1.14.* + lua_module_version: 0.10.13
Testing
$ pipenv sync
$ MOLECULE_DISTRO=(debian:stretch-slim|debian:buster-slim|debian:bullseye-slim) pipenv run molecule test
Note: Debian11 (Debian Bullseye) will be used as default linux distro if none is provided.
See molecule.yml to check possible testing platforms.
For testing purposes, a self signed certificate is being used and encripted via ansible-vault. Remember to never upload your vault key in your repository for real projects.
Built With

