ginsys.nginx
nginx
Ce rôle est un dérivé de https://github.com/bennojoy/nginx. Il met en œuvre une 'API' différente pour définir les paramètres.
Ce rôle installe et configure le serveur web nginx. L'utilisateur peut spécifier tous les paramètres de configuration http qu'il souhaite appliquer à son site. Un nombre illimité de sites peut être ajouté avec les configurations de votre choix.
Exigences
Ce rôle nécessite Ansible 1.4 ou version supérieure et les exigences de la plateforme sont énumérées dans le fichier de métadonnées.
Variables de rôle
Les variables qui peuvent être transmises à ce rôle et une brève description à leur sujet sont les suivantes.
# Le nombre maximum de clients autorisés
nginx_max_clients: 512
# Un ensemble de paramètres http. Notez que tout
# paramètre http nginx valide peut être ajouté ici.
# (voir la documentation nginx pour plus de détails.)
nginx_http_params:
sendfile: "on"
tcp_nopush: "on"
tcp_nodelay: "on"
keepalive_timeout: "65"
access_log: "/var/log/nginx/access.log"
error_log: "/var/log/nginx/error.log"
# Une liste d'ensembles qui définissent les serveurs pour nginx,
# tout comme avec les paramètres http. Tout paramètre de serveur valide
# peut être défini ici.
nginx_sites:
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- name: /
try_files: "$uri $uri/ /index.html"
- name: /images/
try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 9090
server_name: ansible
root: "/tmp/site2"
location:
- name: /
try_files: "$uri $uri/ /index.html"
- name: /images/
try_files: "$uri $uri/ /index.html"
Exemples
Installer nginx avec des directives HTTP de votre choix, mais sans sites configurés :
- hosts: all
roles:
- {role: nginx, nginx_http_params: { sendfile: "on", access_log: "/var/log/nginx/access.log"}, nginx_sites: none }
- hosts: all
roles:
Installer nginx avec des directives HTTP différentes de l'exemple précédent, mais sans sites configurés.
- hosts: all
roles:
- {role: nginx, nginx_http_params: { tcp_nodelay: "on", error_log: "/var/log/nginx/error.log"}, nginx_sites: none }
- hosts: all
roles:
Remarque : Veuillez vous assurer que les directives HTTP passées sont valides, car ce rôle ne vérifiera pas la validité des directives. Voir la documentation nginx pour plus de détails.
Installer nginx et ajouter un site à la configuration.
hosts: all
roles:
- role: nginx,
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- server:
file_name: bar
listen: 8080
location:
- name: "/" try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 8080
location:
- role: nginx,
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
Remarque : Chaque site ajouté est représenté par une liste d'ensembles, et les
configurations générées sont remplies dans /etc/nginx/sites-available/
et ont
des liens symboliques correspondants dans /etc/nginx/sites-enabled/
.
Le nom du fichier pour la configuration spécifique du site est spécifié dans l'ensemble avec la clé "file_name", tout paramètre de serveur valide peut être ajouté à l'ensemble. Pour la directive de localisation, ajoutez la clé "location" suivie d'un numéro unique, la valeur pour la localisation est un ensemble, veuillez vous assurer que ce sont des directives de localisation valides.
Installer Nginx et ajouter 2 sites (méthode différente)
- hosts: all
roles:
- role: nginx
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- name: / try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 9090
server_name: ansible
root: "/tmp/site2"
location:
- name: / try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- role: nginx
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- hosts: all
roles:
Dépendances
Aucune
Licence
BSD
Informations sur l'auteur
Auteur original du rôle : Benno Joy Auteur du fork de Ginsys : Serge van Ginderachter serge@vanginderachter.be
This ansible role manages installation and configuration of nginx. It can both configure general options, as well as virtual hosts. This role is a fork of https://github.com/bennojoy/nginx and implements a different API for configuring locations within a
ansible-galaxy install ginsys.nginx