artem_shestakov.nginx
Rôle Ansible Nginx
=========
Rôle Ansible pour installer Nginx sur les systèmes d'exploitation de la famille Debian/Red Hat.
Exigences
Aucune
Variables
Ce rôle utilise trois types de variables. Les deux premières dépendent du type d'installation. La troisième est une variable générale, peu importe le choix du type d'installation.
Variables générales
- install_from - Le type d'installation de Nginx. [source | repo]. Par défaut :
repo
- nginx_http_add - Liste de paramètres supplémentaires qui seront ajoutés à la section http du fichier de configuration de Nginx. Par défaut : []
- nginx_stream_add - Liste de paramètres supplémentaires qui seront ajoutés à la section stream du fichier de configuration de Nginx. Par défaut : []
- ssl_cert_path - Répertoire pour les certificats SSL utilisés par Nginx. Par défaut :
\etc\nginx\ssl
Serveur web
- nginx_virtual_servers - Liste des serveurs virtuels. Par défaut : []
- listen - spécifie l'adresse IP et le port (ou le chemin de socket de domaine Unix) sur lequel le serveur écoute les demandes.
- server_name - liste des noms d'un serveur virtuel.
- locations - liste des emplacements
- location - configuration en fonction de l'URI de la demande.
- params - définit les paramètres pour l'emplacement. Par exemple
proxy_pass
,return
,rewrite
, etc.
Répartition de charge TCP et UDP
- tcp_udp_nlb Liste de dictionnaires des serveurs backend (upstreams) pour la répartition de charge TCP et UDP avec les champs
- name - nom de l'upstream
- listen - port pour écouter le trafic entrant sur le proxy nginx
- servers - liste des serveurs backend
- stub_status - Si vrai, le rôle configurera l'outil de surveillance Nginx par le ngx_http_stub_status_module. Par défaut :
false
- stub_status_settings Dictionnaire des paramètres de stub_status avec les champs
- listen - Définit l'adresse et le port pour une IP, ou le chemin pour un socket de domaine UNIX sur lequel le serveur acceptera les demandes. Par défaut :
127.0.0.1:80
- server_name - Définit les noms d'un serveur virtuel. Par défaut :
127.0.0.1
- location - Définit la configuration en fonction de l'URI de la demande. Par défaut :
/nginx_status
- listen - Définit l'adresse et le port pour une IP, ou le chemin pour un socket de domaine UNIX sur lequel le serveur acceptera les demandes. Par défaut :
SSL
- proxy_ssl - Active le protocole SSL/TLS pour les connexions à un serveur proxy.
- proxy_ssl_certificate - Spécifie un fichier contenant le certificat au format PEM utilisé pour l'authentification à un serveur HTTPS proxy.
- proxy_ssl_certificate_key - Spécifie un fichier contenant la clé secrète au format PEM utilisée pour l'authentification à un serveur HTTPS proxy.
- proxy_ssl_ciphers - Spécifie les ciphers activés pour les connexions à un serveur proxy. Les ciphers sont spécifiés dans le format compris par la bibliothèque OpenSSL.
- ssl_certificate - Spécifie un fichier contenant la clé secrète au format PEM pour le serveur virtuel donné.
- ssl_certificate_key - Spécifie un fichier contenant la clé secrète au format PEM utilisée pour l'authentification à un serveur proxy.
Variables pour installation à partir du dépôt
Variables pour installation à partir de la source
- nginx_with_modules - Liste des modules Nginx non par défaut. La liste des modules est ici. Par défaut : []
Exemple de Playbook
---
- name: Installer l'application Nginx
hosts: all
remote_user: vagrant
become: true
roles:
- artem_shestakov.nginx
vars:
- install_from: source
- nginx_with_modules:
- --with-file-aio
- --with-ipv6
- --with-http_ssl_module
- --with-http_v2_module
- --with-http_realip_module
- --with-http_addition_module
- --with-http_xslt_module=dynamic
- --with-http_image_filter_module=dynamic
- --with-http_sub_module
- --with-http_dav_module
- --with-http_flv_module
- --with-http_mp4_module
- --with-http_gunzip_module
- --with-http_gzip_static_module
- --with-http_random_index_module
- --with-http_secure_link_module
- --with-http_degradation_module
- --with-http_slice_module
- --with-http_stub_status_module
- --with-http_perl_module=dynamic
- --with-http_auth_request_module
- --with-mail=dynamic
- --with-mail_ssl_module
- --with-stream=dynamic
- --with-stream_ssl_module
- --with-debug
- tcp_udp_nlb:
- name: exemple
listen:
- 192.168.1.1:443
- 192.168.1.2:443
servers:
- 10.79.1.196:443
- name: exemple2
listen:
- 10002
servers:
- 10.79.1.203:5601
Copier les certificats sur le serveur Nginx
- Placez vos certificats dans le répertoire
- Définissez les variables
- copy_ssl_certs - vrai si vous devez copier vos certificats de votre machine locale au serveur Nginx distant.
- user_certs_path - liste des répertoires avec vos certificats SSL à copier sur Nginx. Par défaut : ['./files/ssl/*']
Licence
BSD, MIT
Informations sur l'auteur
Artem Shestakov (artem.s.shestakov@gmail.com)