--- - name: FAIL | Check filenames fail: msg="Forbidden keyword default on vhost {{ item.name if item.name is string else item.name[0] }}" when: item.filename is defined and item.filename == 'default' with_items: "{{ nginx_vhosts }}" - name: FAIL | Check vhost and SSL/TLS support fail: msg="Missmatch configuration for vhost {{ item.name if item.name is string else item.name[0] }}" when: > item.proto is defined and 'https' in item.proto and item.ssl_name is not defined with_items: "{{ nginx_vhosts }}" - name: FAIL | Check HTTPS redir and proto fail: msg="You can't have HTTP proto and HTTPS redirection at the same time" when: > ((item.proto is defined and 'http' in item.proto) or (item.proto is not defined)) and (item.redirect_http is defined and item.redirect_http) with_items: "{{ nginx_vhosts }}" - name: FILE | Create root directory file: > path={{ nginx_root }} state=directory - name: FILE | Create root public folders (foreach nginx_vhosts) file: > path={{ nginx_root }}/{{ item.name if item.name is string else item.name[0] }}/public state=directory owner={{ item.owner | default(nginx_user) }} group={{ item.group | default(nginx_user) }} mode={{ item.mode | default('0755') }} with_items: "{{ nginx_vhosts }}" when: > item.root is not defined and (item.template is defined and item.template not in nginx_templates_no_dir) and (item.delete is not defined or not item.delete) and item.redirect_to is not defined - name: TEMPLATE | Create vhosts template: > src=etc/nginx/sites-available/{{ item.template if item.redirect_to is not defined else '_redirect' }}.j2 dest={{ nginx_etc_dir }}/sites-available/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} with_items: "{{ nginx_vhosts }}" notify: ['reload nginx', 'restart nginx freebsd'] when: item.delete is not defined or not item.delete - name: FILE | Delete vhosts file: path={{ nginx_etc_dir }}/sites-available/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} state=absent with_items: "{{ nginx_vhosts }}" notify: ['reload nginx', 'restart nginx freebsd'] when: item.delete is defined and item.delete - name: FILE | Enable vhosts file: > src={{ nginx_etc_dir }}/sites-available/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} dest={{ nginx_etc_dir }}/sites-enabled/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} state=link with_items: "{{ nginx_vhosts }}" notify: ['reload nginx', 'restart nginx freebsd'] when: > ((item.enable is not defined) or (item.enable is defined and item.enable)) and (item.delete is not defined or not item.delete) - name: FILE | Disable vhosts file: path={{ nginx_etc_dir}}/sites-enabled/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} state=absent with_items: "{{ nginx_vhosts }}" notify: ['reload nginx', 'restart nginx freebsd'] when: (item.enable is defined and not item.enable) or (item.delete is defined and item.delete) - name: FILE | Delete default vhost when explicitely defined file: > path={{ nginx_etc_dir }}/sites-enabled/default state=absent notify: ['reload nginx', 'restart nginx freebsd'] when: nginx_default_vhost is not none - name: FILE | Auto set default vhost file: > src={{ nginx_etc_dir }}/sites-available/default dest={{ nginx_etc_dir }}/sites-enabled/default state=link notify: ['reload nginx', 'restart nginx freebsd'] when: nginx_default_vhost is none