--- - name: Create Redis .env file from vault secrets ansible.builtin.template: src: redis.env.j2 dest: "{{ redis_stack_path }}/.env" mode: '0600' tags: - redis - config - name: Deploy Redis stack community.docker.docker_compose_v2: project_src: "{{ redis_stack_path }}" state: present pull: always register: redis_compose_result tags: - redis - deploy - name: Wait for Redis to be healthy ansible.builtin.shell: | docker compose -f {{ redis_stack_path }}/docker-compose.yml ps redis-stack | grep -Eiq "Up|running" register: redis_state changed_when: false until: redis_state.rc == 0 retries: "{{ ((redis_wait_timeout | int) + (redis_wait_interval | int) - 1) // (redis_wait_interval | int) }}" delay: "{{ redis_wait_interval | int }}" failed_when: redis_state.rc != 0 tags: - redis - healthcheck - name: Test Redis connection ansible.builtin.shell: | docker exec redis-stack redis-cli ping register: redis_ping changed_when: false failed_when: redis_ping.stdout != "PONG" tags: - redis - healthcheck - name: Set Redis deployment facts ansible.builtin.set_fact: redis_stack_changed: "{{ redis_compose_result.changed }}" redis_stack_healthy: "{{ redis_state.rc == 0 }}" tags: - redis