From ae4896667feb7c55bb271b996315dab80d1a7310 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sun, 4 Feb 2018 19:38:29 +0100 Subject: [PATCH 01/13] Added tasks to deploy vhosts from templates --- defaults/main.yml | 1 + tasks/nginx.yml | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/defaults/main.yml b/defaults/main.yml index 27f1853..c6a05b5 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,6 +2,7 @@ nginx_enabled: yes # The role in enabled nginx_dir: /etc/nginx # Nginx config directory +nginx_sites_available_dir: "{{ nginx_dir }}/sites-available" nginx_sites_dir: "{{nginx_dir}}/sites-enabled" # Nginx include directory nginx_default_site: "{{nginx_sites_dir}}/default" nginx_delete_default_site: no diff --git a/tasks/nginx.yml b/tasks/nginx.yml index d1acf01..9edb701 100644 --- a/tasks/nginx.yml +++ b/tasks/nginx.yml @@ -18,6 +18,26 @@ htpasswd: path={{nginx_auth_file}} name={{item.name}} password={{item.password}} with_items: "{{nginx_auth_users}}" +- name: Ensure the sites directory is exists + file: + name: "{{ nginx_sites_available_dir }}" + state: directory + +- name: Create vhosts from template + template: + src: "{{ item.template }}" + dest: "{{ nginx_sites_available_dir }}/{{ item.name }}.conf" + with_items: + - "{{ nginx_templatized_vhosts }}" + +- name: enable vhosts + file: + state: link + src: "{{ nginx_sites_available_dir }}/{{ item.name }}.conf" + dest: "{{ nginx_sites_dir }}/{{ item.name }}.conf" + with_items: + - "{{ nginx_templatized_vhosts }}" + - name: Configure nginx template: src=nginx.conf.j2 dest={{nginx_dir}}/nginx.conf notify: nginx restart From 4f289704ff97c4abad684e72176987d7678caf0c Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 17 Mar 2018 16:41:08 +0100 Subject: [PATCH 02/13] Added conditions to avoid undefined variable errors and applied new ansible recommended syntax --- tasks/install.deb.yml | 11 +++++++---- tasks/nginx.yml | 36 +++++++++++++++++++++++++++--------- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/tasks/install.deb.yml b/tasks/install.deb.yml index a4da9fc..10619e3 100644 --- a/tasks/install.deb.yml +++ b/tasks/install.deb.yml @@ -3,12 +3,15 @@ - include_vars: "{{ansible_distribution}}.yml" - name: Install dependencies - apt: name=python-pycurl + apt: + name: python-pycurl - name: Add nginx repository - apt_repository: repo=ppa:nginx/stable + apt_repository: + repo: ppa:nginx/stable when: nginx_apt_use_ppa_repo and ansible_distribution == "Ubuntu" - name: Install Dependencies - apt: name={{item}} - with_items: [ nginx, python-passlib ] + apt: + name: "{{ item }}" + with_items: [ nginx, python-passlib ] diff --git a/tasks/nginx.yml b/tasks/nginx.yml index 9edb701..aeee809 100644 --- a/tasks/nginx.yml +++ b/tasks/nginx.yml @@ -7,21 +7,29 @@ when: ansible_os_family == 'RedHat' - name: Ensure that Nginx user is exist - user: name={{nginx_user}} system=yes + user: + name: "{{ nginx_user }}" + system: yes - name: Delete default site - action: file path={{nginx_default_site}} state=absent + file: + path: "{{ nginx_default_site }}" + state: absent when: nginx_delete_default_site notify: nginx restart - name: Encrypt http auth passwords - htpasswd: path={{nginx_auth_file}} name={{item.name}} password={{item.password}} + htpasswd: + path: "{{nginx_auth_file}}" + name: "{{item.name}}" + password: "{{item.password}}" with_items: "{{nginx_auth_users}}" -- name: Ensure the sites directory is exists +- name: Ensure the sites available directory exists file: name: "{{ nginx_sites_available_dir }}" state: directory + when: nginx_sites_available_dir is defined - name: Create vhosts from template template: @@ -29,21 +37,31 @@ dest: "{{ nginx_sites_available_dir }}/{{ item.name }}.conf" with_items: - "{{ nginx_templatized_vhosts }}" + when: nginx_templatized_vhosts is defined + +- name: Ensure the sites directory is exists + file: + name: "{{nginx_sites_dir}}" + state: directory -- name: enable vhosts +- name: Enable vhosts (from templates) file: state: link src: "{{ nginx_sites_available_dir }}/{{ item.name }}.conf" dest: "{{ nginx_sites_dir }}/{{ item.name }}.conf" with_items: - "{{ nginx_templatized_vhosts }}" + when: nginx_templatized_vhosts is defined - name: Configure nginx - template: src=nginx.conf.j2 dest={{nginx_dir}}/nginx.conf + template: + src: nginx.conf.j2 + dest: "{{nginx_dir}}/nginx.conf" notify: nginx restart -- name: Ensure the sites directory is exists - file: name={{nginx_sites_dir}} state=directory - name: Ensure that nginx is started - service: name={{nginx_service_name}} state=started enabled=yes + service: + name: "{{nginx_service_name}}" + state: started + enabled: yes From 7a925c953f1a398949c12ef6b175641aad8a020b Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 17 Mar 2018 16:46:51 +0100 Subject: [PATCH 03/13] Some more syntax update --- tasks/nginx.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tasks/nginx.yml b/tasks/nginx.yml index aeee809..642a905 100644 --- a/tasks/nginx.yml +++ b/tasks/nginx.yml @@ -20,10 +20,10 @@ - name: Encrypt http auth passwords htpasswd: - path: "{{nginx_auth_file}}" - name: "{{item.name}}" - password: "{{item.password}}" - with_items: "{{nginx_auth_users}}" + path: "{{ nginx_auth_file }}" + name: "{{ item.name }}" + password: "{{ item.password }}" + with_items: "{{ nginx_auth_users }}" - name: Ensure the sites available directory exists file: @@ -41,7 +41,7 @@ - name: Ensure the sites directory is exists file: - name: "{{nginx_sites_dir}}" + name: "{{ nginx_sites_dir }}" state: directory - name: Enable vhosts (from templates) @@ -56,12 +56,12 @@ - name: Configure nginx template: src: nginx.conf.j2 - dest: "{{nginx_dir}}/nginx.conf" + dest: "{{ nginx_dir }}/nginx.conf" notify: nginx restart - name: Ensure that nginx is started service: - name: "{{nginx_service_name}}" + name: "{{ nginx_service_name }}" state: started enabled: yes From d9230ce187c1644e1f151842a996c4ea56f71f84 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 17 Mar 2018 16:48:24 +0100 Subject: [PATCH 04/13] Some more syntax update --- tasks/install.red.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tasks/install.red.yml b/tasks/install.red.yml index c7c84b1..aa6234f 100644 --- a/tasks/install.red.yml +++ b/tasks/install.red.yml @@ -1,10 +1,16 @@ --- - name: Ensure libselinux-python is installed - yum: name=libselinux-python + yum: + name: libselinux-python - name: Setup repo - copy: src=nginx.repo dest=/etc/yum.repos.d/nginx.repo + copy: + src: nginx.repo + dest: /etc/yum.repos.d/nginx.repo - name: Install Nginx - yum: name={{nginx_yum_pkg}} enablerepo={{nginx_yum_enablerepo or None}} disablerepo={{nginx_yum_disablerepo or None}} + yum: + name: "{{nginx_yum_pkg}}" + enablerepo: "{{nginx_yum_enablerepo or None}}" + disablerepo: "{{nginx_yum_disablerepo or None}}" From dea72dd6d5d889c9ec5b69a3a1484de3088eda24 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 17 Mar 2018 17:11:08 +0100 Subject: [PATCH 05/13] Added documentation for vhost templates in README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 3802737..90b1977 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,10 @@ nginx_servers: # Setup servers (simplest interface, use cfg # listen 80; # server_name test.com; # location / { root /test; index index.html; } +nginx_templatized_vhosts: # Setup vhosts files (one domain name per configuration file) + # by specifying source template path + # Ex: nginx_templatized_vhosts: + # - { "name": "example.com", "template": "templates/my_vhost.j2" } nginx_auth_file: "{{nginx_dir}}/.htpasswd" # Where stored passwords nginx_auth_users: [] # Setup users for http authentication From 567738df1113a44cc3c6c7a508f4b4d806ebf8bd Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 17 Mar 2018 17:15:53 +0100 Subject: [PATCH 06/13] Fix README indent --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 90b1977..a0bb6af 100644 --- a/README.md +++ b/README.md @@ -42,10 +42,10 @@ nginx_servers: # Setup servers (simplest interface, use cfg # listen 80; # server_name test.com; # location / { root /test; index index.html; } -nginx_templatized_vhosts: # Setup vhosts files (one domain name per configuration file) - # by specifying source template path - # Ex: nginx_templatized_vhosts: - # - { "name": "example.com", "template": "templates/my_vhost.j2" } +nginx_templatized_vhosts: # Setup vhosts files (one domain name per configuration file) + # by specifying source template path + # Ex: nginx_templatized_vhosts: + # - { "name": "example.com", "template": "templates/my_vhost.j2" } nginx_auth_file: "{{nginx_dir}}/.htpasswd" # Where stored passwords nginx_auth_users: [] # Setup users for http authentication From 6f00e7ad77976cc2d6dfb7aac7234ad06c45928e Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 17 Mar 2018 17:21:22 +0100 Subject: [PATCH 07/13] Applied new syntax on handler --- handlers/main.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/handlers/main.yml b/handlers/main.yml index 00d143b..2842aab 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,7 +1,11 @@ --- - name: nginx restart - service: name={{nginx_service_name}} state=restarted + service: + name: "{{nginx_service_name}}" + state: restarted - name: nginx reload - service: name={{nginx_service_name}} state=reloaded + service: + name: "{{nginx_service_name}}" + state: reloaded From bdf04503e2b5071454e0359dc18bf779c6abd2e7 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 17 Mar 2018 17:21:22 +0100 Subject: [PATCH 08/13] Applied new syntax on handler --- handlers/main.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/handlers/main.yml b/handlers/main.yml index 00d143b..2842aab 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,7 +1,11 @@ --- - name: nginx restart - service: name={{nginx_service_name}} state=restarted + service: + name: "{{nginx_service_name}}" + state: restarted - name: nginx reload - service: name={{nginx_service_name}} state=reloaded + service: + name: "{{nginx_service_name}}" + state: reloaded From 3a3bcaebab1f33e62bbe3e0edbd272db5eb9a2d8 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 24 Mar 2018 13:18:12 +0100 Subject: [PATCH 09/13] Added verification task of templates --- tasks/nginx.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/nginx.yml b/tasks/nginx.yml index 642a905..511b394 100644 --- a/tasks/nginx.yml +++ b/tasks/nginx.yml @@ -52,6 +52,7 @@ with_items: - "{{ nginx_templatized_vhosts }}" when: nginx_templatized_vhosts is defined + validate: nginx -t - name: Configure nginx template: From df80e1c9bde69d02672fd2c645b1ca10b4813880 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Sat, 24 Mar 2018 13:26:52 +0100 Subject: [PATCH 10/13] Added nginx_client_max_body_size parameter --- templates/nginx.conf.j2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/nginx.conf.j2 b/templates/nginx.conf.j2 index 88dd27b..9866e92 100644 --- a/templates/nginx.conf.j2 +++ b/templates/nginx.conf.j2 @@ -29,6 +29,8 @@ http { keepalive_timeout {{nginx_keepalive_timeout}}; keepalive_requests {{nginx_keepalive_requests}}; + client_max_body_size {{ nginx_client_max_body_size | default(2M) }}; + {% if nginx_gzip %} gzip on; gzip_disable "msie6"; From 9016abed80a22502bfe8f4e3f5a9304977802f61 Mon Sep 17 00:00:00 2001 From: bpetit Date: Mon, 9 Apr 2018 02:14:58 +0200 Subject: [PATCH 11/13] Update nginx.conf.j2 --- templates/nginx.conf.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/nginx.conf.j2 b/templates/nginx.conf.j2 index 9866e92..8fa478a 100644 --- a/templates/nginx.conf.j2 +++ b/templates/nginx.conf.j2 @@ -29,7 +29,7 @@ http { keepalive_timeout {{nginx_keepalive_timeout}}; keepalive_requests {{nginx_keepalive_requests}}; - client_max_body_size {{ nginx_client_max_body_size | default(2M) }}; + client_max_body_size {{ nginx_client_max_body_size | default('2M') }}; {% if nginx_gzip %} gzip on; From 3eb246e05c3b08a1bb20811538155de648ea5f50 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Mon, 3 Sep 2018 12:10:33 +0200 Subject: [PATCH 12/13] Updated readme --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a0bb6af..e1dbcd7 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ Stouts.nginx ============ -[![Build Status](http://img.shields.io/travis/Stouts/Stouts.nginx.svg?style=flat-square)](https://travis-ci.org/Stouts/Stouts.nginx) -[![Galaxy](http://img.shields.io/badge/galaxy-Stouts.nginx-blue.svg?style=flat-square)](https://galaxy.ansible.com/list#/roles/854) +[![Build Status](http://img.shields.io/travis/bpetit/Stouts.nginx.svg?style=flat-square)](https://travis-ci.org/bpetit/Stouts.nginx) Ansible role which simple manage nginx @@ -83,12 +82,16 @@ Licensed under the MIT License. See the LICENSE file for details. #### Feedback, bug-reports, requests, ... -Are [welcome](https://github.com/Stouts/Stouts.nginx/issues)! +Are [welcome](https://github.com/bpetit/Stouts.nginx/issues)! If you wish to express your appreciation for the role, you are welcome to send -a postcard to: +a postcard to the original author: Kirill Klenov pos. Severny 8-3 MO, Istra, 143500 Russia + +Or, if it is about this fork: + + Benoit Petit From 5f26ed22bf070128a498eda87d41a329d7cc22f0 Mon Sep 17 00:00:00 2001 From: Benoit Petit Date: Tue, 19 Mar 2019 19:01:51 +0100 Subject: [PATCH 13/13] Fixed indent typo --- tasks/nginx.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/nginx.yml b/tasks/nginx.yml index 511b394..44c4f15 100644 --- a/tasks/nginx.yml +++ b/tasks/nginx.yml @@ -49,10 +49,10 @@ state: link src: "{{ nginx_sites_available_dir }}/{{ item.name }}.conf" dest: "{{ nginx_sites_dir }}/{{ item.name }}.conf" + validate: nginx -t with_items: - "{{ nginx_templatized_vhosts }}" when: nginx_templatized_vhosts is defined - validate: nginx -t - name: Configure nginx template: