--- # ============================================================================ # Post-deploy verification # ---------------------------------------------------------------------------- # Polls the local Semaphore port until it responds. Fails loudly if the # service doesn't come up — the operator should not get an "all green" # playbook result while Semaphore is silently broken. # ============================================================================ - name: Wait for Semaphore HTTP endpoint ansible.builtin.uri: url: "http://127.0.0.1:{{ semaphore_listen_port }}/api/ping" status_code: [200, 201, 204] return_content: false register: semaphore_ping until: semaphore_ping.status in [200, 201, 204] retries: "{{ semaphore_health_check_retries }}" delay: "{{ semaphore_health_check_delay }}" - name: Report Semaphore status ansible.builtin.debug: msg: >- Semaphore is reachable on http://127.0.0.1:{{ semaphore_listen_port }}. Public URL: {{ semaphore_web_url }}. Admin user 'admin' is provisioned automatically on first boot using vault_semaphore_admin_password.