From 5c61b567a3e954fa439ae40505b84914530df422 Mon Sep 17 00:00:00 2001 From: Toni Mueller Date: Mon, 16 Jul 2018 12:28:41 +0100 Subject: [PATCH] make vhosts on Debian symlinked --- defaults/main.yml | 2 ++ tasks/main.yml | 4 +++ tasks/vhosts-Debian.yml | 65 +++++++++++++++++++++++++++++++++++++++++ vars/Debian.yml | 3 +- 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 tasks/vhosts-Debian.yml diff --git a/defaults/main.yml b/defaults/main.yml index 73100c5..51f69bd 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -22,6 +22,8 @@ nginx_multi_accept: "off" nginx_error_log: "/var/log/nginx/error.log warn" nginx_access_log: "/var/log/nginx/access.log main buffer=16k flush=2m" +nginx_vhost_enabled: true + nginx_sendfile: "on" nginx_tcp_nopush: "on" nginx_tcp_nodelay: "on" diff --git a/tasks/main.yml b/tasks/main.yml index fd523d9..d0019b2 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -29,6 +29,10 @@ # Vhost configuration. - import_tasks: vhosts.yml + when: ansible_os_family != 'Debian' + +- import_tasks: vhosts-Debian.yml + when: ansible_os_family == 'Debian' # Nginx setup. - name: Copy nginx configuration in place. diff --git a/tasks/vhosts-Debian.yml b/tasks/vhosts-Debian.yml new file mode 100644 index 0000000..b5e3219 --- /dev/null +++ b/tasks/vhosts-Debian.yml @@ -0,0 +1,65 @@ +--- +- name: Remove default nginx vhost config file (if configured). + file: + path: "{{ nginx_default_vhost_path }}" + state: absent + when: nginx_remove_default_vhost + notify: restart nginx + +- name: Ensure nginx_vhost_path exists. + file: + path: "{{ nginx_vhost_path }}" + state: directory + notify: reload nginx + +- name: Ensure nginx_vhost_enabled_path exists. + file: + path: "{{ nginx_vhost_enabled_path }}" + state: directory + notify: reload nginx + +- name: Add managed vhost config files. + template: + src: "{{ item.template|default(nginx_vhost_template) }}" + dest: "{{ nginx_vhost_path }}/{{ item.filename|default(item.server_name.split(' ')[0] ~ '.conf') }}" + force: yes + owner: root + group: root + mode: 0644 + when: item.state|default('present') != 'absent' + with_items: "{{ nginx_vhosts }}" + notify: reload nginx + +- name: Remove managed vhost config files. + file: + path: "{{ nginx_vhost_path }}/{{ item.filename|default(item.server_name.split(' ')[0] ~ '.conf') }}" + state: absent + when: item.state|default('present') == 'absent' + with_items: "{{ nginx_vhosts }}" + notify: reload nginx + +- name: Remove legacy vhosts.conf file. + file: + path: "{{ nginx_vhost_path }}/vhosts.conf" + state: absent + notify: reload nginx + +- name: manage the symlink in sites-enabled, enable + file: + path: "{{ nginx_vhost_enabled_path }}/{{ item.filename|default(item.server_name.split(' ')[0] ~ '.conf') }}" + src: "{{ nginx_vhost_path }}/{{ item.filename|default(item.server_name.split(' ')[0] ~ '.conf') }}" + state: link + when: item.enabled|default('true') == 'true' + with_items: "{{ nginx_vhosts }}" + notify: reload nginx + +- name: manage the symlink in sites-enabled, disable + file: + path: "{{ nginx_vhost_enabled_path }}/{{ item.filename|default(item.server_name.split(' ')[0] ~ '.conf') }}" + state: absent + when: item.enabled|default('true') == 'false' + with_items: "{{ nginx_vhosts }}" + notify: reload nginx + + + diff --git a/vars/Debian.yml b/vars/Debian.yml index cb12770..5b09ce5 100644 --- a/vars/Debian.yml +++ b/vars/Debian.yml @@ -4,6 +4,7 @@ nginx_conf_path: /etc/nginx/conf.d nginx_conf_file_path: /etc/nginx/nginx.conf nginx_mime_file_path: /etc/nginx/mime.types nginx_pidfile: /run/nginx.pid -nginx_vhost_path: /etc/nginx/sites-enabled +nginx_vhost_path: /etc/nginx/sites-available +nginx_vhost_enabled_path: /etc/nginx/sites-enabled nginx_default_vhost_path: /etc/nginx/sites-enabled/default __nginx_user: "www-data"