--- # Deploy Matrix Ansible Controller # # Usage: # ansible-playbook playbooks/deploy-matrix-ansible-controller.yml # # After deployment: # ssh replicant # docker exec -it matrix-ansible-controller bash # # Copy your vars.yml to data/inventory/host_vars/matrix.yourdomain.com/ - name: Deploy Matrix Ansible Controller hosts: replicant vars: service_name: matrix-ansible-controller service_dir: /home/maddox/docker/appdata/{{ service_name }} compose_src: "{{ playbook_dir }}/../compose-files/replicant/{{ service_name }}" tasks: - name: Create service directory structure ansible.builtin.file: path: "{{ item }}" state: directory mode: '0755' loop: - "{{ service_dir }}" - "{{ service_dir }}/data" - "{{ service_dir }}/data/playbook" - "{{ service_dir }}/data/inventory" - "{{ service_dir }}/data/inventory/host_vars" - "{{ service_dir }}/data/ansible-cache" - name: Copy Dockerfile ansible.builtin.copy: src: "{{ compose_src }}/Dockerfile" dest: "{{ service_dir }}/Dockerfile" mode: '0644' - name: Copy entrypoint script ansible.builtin.copy: src: "{{ compose_src }}/entrypoint.sh" dest: "{{ service_dir }}/entrypoint.sh" mode: '0755' - name: Copy docker-compose.yml ansible.builtin.copy: src: "{{ compose_src }}/docker-compose.yml" dest: "{{ service_dir }}/docker-compose.yml" mode: '0644' - name: Build Docker image community.docker.docker_image: name: matrix-ansible-controller tag: latest source: build build: path: "{{ service_dir }}" pull: yes state: present force_source: yes - name: Deploy container community.docker.docker_compose_v2: project_src: "{{ service_dir }}" state: present pull: always - name: Display next steps ansible.builtin.debug: msg: | ✅ Matrix Ansible Controller deployed! === NEXT STEPS === 1. Copy your Matrix inventory to the container: ssh replicant cd /home/maddox/docker/appdata/matrix-ansible-controller/data/inventory # Create the structure: mkdir -p host_vars/matrix.yourdomain.com # Copy your vars.yml (from wherever it currently lives): # Option A: From another machine via scp # Option B: Create/paste manually # Also create/copy the hosts file: cat > hosts << 'HOSTS' [matrix_servers] matrix.yourdomain.com ansible_host=YOUR_MATRIX_IP ansible_ssh_user=root HOSTS 2. Enter the container and test: docker exec -it matrix-ansible-controller bash ansible -i inventory/hosts all -m ping 3. Run Matrix updates: just update # Update playbook + roles just install-all # Deploy changes ===================================