--- - name: Check if state is supported ansible.builtin.fail: msg: >-2 Unsupported state '{{ nginx_state }}'. Supported states are {{ nginx_states | join(', ') }}. when: nginx_state not in nginx_states - name: Ensure nginx config file is {{ nginx_state }} ansible.builtin.file: path: "{{ nginx_config_file }}" state: "{{ nginx_state }}" when: nginx_state == 'absent' - name: Ensure base path '{{ nginx_base_path }}' is {{ nginx_state }} ansible.builtin.file: path: "{{ nginx_base_path }}" mode: "0755" state: >-2 {{ (nginx_state == 'present') | ternary('directory', 'absent') }} - name: Ensure nginx config file is templated ansible.builtin.copy: dest: "{{ nginx_config_file }}" content: "{{ nginx_config }}" mode: 0640 notify: - restart-nginx when: nginx_state == 'present' - name: Ensure docker container image '{{ nginx_container_image_reference }}' is {{ nginx_state }} community.docker.docker_image: name: "{{ nginx_container_image_reference }}" state: "{{ nginx_state }}" source: "{{ nginx_container_image_source }}" force_source: >-2 {{ nginx_container_image_force_source | default(nginx_container_image_tag | default(false, true)) }} - name: Ensure docker container '{{ nginx_container_name }}' is {{ nginx_container_state }} community.docker.docker_container: name: "{{ nginx_container_name }}" image: "{{ nginx_container_image_reference }}" env: "{{ nginx_container_env | default(omit, true) }}" user: "{{ nginx_container_user | default(omit, true) }}" ports: "{{ nginx_container_ports | default(omit, true) }}" labels: "{{ nginx_container_labels | default(omit, true) }}" volumes: "{{ nginx_container_volumes | default(omit, true) }}" etc_hosts: "{{ nginx_container_etc_hosts | default(omit, true) }}" networks: "{{ nginx_container_networks | default(omit, true) }}" purge_networks: "{{ nginx_container_purge_networks | default(omit, true) }}" restart_policy: "{{ nginx_container_restart_policy }}" state: "{{ nginx_container_state }}"