--- - name: set facts ansible.builtin.set_fact: safe_filename: "{{ item.name | regex_replace('[^\\w]', '') }}" nginx_entry_type: '{{ nginx_entry_type | default(item.get("entry_type", None)) }}' - name: perform sanity checks ansible.builtin.assert: that: - nginx_entry_type in ["stream", "site"] fail_msg: Invalid value for `nginx_entry_type`; expected "stream" or "site", got "{{ nginx_entry_type }}" - name: 'copy entry in {{ nginx_entry_type }}s-available' become: true ansible.builtin.copy: content: '{{ item.content }}' dest: "/etc/nginx/{{ nginx_entry_type }}s-available/{{ safe_filename }}.conf" owner: '{{ nginx_service_user }}' group: '{{ nginx_service_user }}' mode: '0640' when: item.get('state', 'present') == 'present' notify: - 'nginx : reload nginx service' - name: 'enable {{ nginx_entry_type }}' become: true ansible.builtin.file: src: "/etc/nginx/{{ nginx_entry_type }}s-available/{{ safe_filename }}.conf" path: "/etc/nginx/{{ nginx_entry_type }}s-enabled/{{ safe_filename }}.conf" owner: '{{ nginx_service_user }}' group: '{{ nginx_service_user }}' state: 'link' when: item.get('state', 'present') == 'present' notify: - 'nginx : reload nginx service' - name: 'disable {{ nginx_entry_type }}' become: true ansible.builtin.file: path: "/etc/nginx/{{ nginx_entry_type }}s-enabled/{{ safe_filename }}.conf" state: absent when: item.get('state', 'present') in ['disabled', 'deleted'] - name: 'remove {{ nginx_entry_type }}' become: true ansible.builtin.file: path: "/etc/nginx/{{ nginx_entry_type }}s-available/{{ safe_filename }}.conf" state: absent when: item.get('state', 'present') == 'deleted'