--- - name: Check if state is valid ansible.builtin.fail: msg: >-2 Unsupported state '{{ jellyfin_state }}'. Supported states are {{ jellyfin_states | join(', ') }}. when: jellyfin_state not in jellyfin_states - name: Ensure jellyfin user '{{ jellyfin_user }}' is {{ jellyfin_state }} ansible.builtin.user: name: "{{ jellyfin_user }}" state: "{{ jellyfin_state }}" system: "{{ jellyfin_user_system | default(true, true) }}" register: jellyfin_user_info - name: Ensure host directories for jellyfin are {{ jellyfin_state }} ansible.builtin.file: path: "{{ item.path }}" state: >-2 {{ (jellyfin_state == 'present') | ternary('directory', 'absent') }} owner: "{{ item.owner | default(jellyfin_uid) }}" group: "{{ item.group | default(jellyfin_gid) }}" mode: "{{ item.mode }}" loop: "{{ jellyfin_host_directories }}" - name: Ensure container image '{{ jellyfin_container_image_ref }}' is {{ jellyfin_state }} community.docker.docker_image: name: "{{ jellyfin_container_image_ref }}" state: "{{ jellyfin_state }}" source: "{{ jellyfin_container_image_source }}" force_source: "{{ jellyfin_container_image_tag | default(false, true) }}" register: jellyfin_container_image_pull_result until: jellyfin_container_image_pull_result is succeeded retries: 5 delay: 3 - name: Ensure container '{{ jellyfin_container_name }}' is {{ jellyfin_container_state }} community.docker.docker_container: name: "{{ jellyfin_container_name }}" image: "{{ jellyfin_container_image_ref }}" user: "{{ jellyfin_uid }}:{{ jellyfin_gid }}" labels: "{{ jellyfin_container_labels }}" volumes: "{{ jellyfin_container_volumes }}" networks: "{{ jellyfin_container_networks | default(omit, True) }}" network_mode: "{{ jellyfin_container_network_mode }}" restart_policy: "{{ jellyfin_container_restart_policy }}" state: "{{ jellyfin_container_state }}"