--- # Deploy Database Admin Tools to databases VM # Deploys: phpmyadmin, phppgadmin # Target: databases (192.168.1.81) - name: Deploy Database Admin Tools hosts: databases vars: appdata_path: /home/docker/appdata compose_src: "{{ playbook_dir }}/../compose-files/databases" tasks: # ========================================================================= # PHPMYADMIN # ========================================================================= - name: Create phpmyadmin directory ansible.builtin.file: path: "{{ appdata_path }}/phpmyadmin" state: directory mode: '0755' - name: Copy phpmyadmin docker-compose.yml ansible.builtin.copy: src: "{{ compose_src }}/phpmyadmin/docker-compose.yml" dest: "{{ appdata_path }}/phpmyadmin/docker-compose.yml" mode: '0644' - name: Deploy phpmyadmin container community.docker.docker_compose_v2: project_src: "{{ appdata_path }}/phpmyadmin" state: present pull: always register: phpmyadmin_result - name: Show phpmyadmin status ansible.builtin.debug: msg: "phpMyAdmin deployed: {{ phpmyadmin_result.changed }}" # ========================================================================= # PHPPGADMIN # ========================================================================= - name: Create phppgadmin directory ansible.builtin.file: path: "{{ appdata_path }}/phppgadmin" state: directory mode: '0755' - name: Create phppgadmin data directory ansible.builtin.file: path: "{{ appdata_path }}/phppgadmin/data" state: directory mode: '0755' - name: Create phppgadmin logs directory ansible.builtin.file: path: "{{ appdata_path }}/phppgadmin/logs" state: directory mode: '0755' - name: Copy phppgadmin docker-compose.yml ansible.builtin.copy: src: "{{ compose_src }}/phppgadmin/docker-compose.yml" dest: "{{ appdata_path }}/phppgadmin/docker-compose.yml" mode: '0644' - name: Deploy phppgadmin container community.docker.docker_compose_v2: project_src: "{{ appdata_path }}/phppgadmin" state: present pull: always register: phppgadmin_result - name: Show phppgadmin status ansible.builtin.debug: msg: "phpPgAdmin deployed: {{ phppgadmin_result.changed }}" # ========================================================================= # VERIFICATION # ========================================================================= - name: Wait for phpmyadmin to be ready ansible.builtin.uri: url: "http://localhost:2500" status_code: 200 timeout: 5 register: pma_health retries: 10 delay: 5 until: pma_health.status == 200 - name: Wait for phppgadmin to be ready ansible.builtin.uri: url: "http://localhost:5183" status_code: [200, 302] timeout: 5 register: pga_health retries: 10 delay: 5 until: pga_health.status in [200, 302] - name: Summary ansible.builtin.debug: msg: - "✅ phpMyAdmin: http://192.168.1.81:2500" - "✅ phpPgAdmin: http://192.168.1.81:5183"