--- - name: Deploy Gitea MCP Server with Docker Compose hosts: ubuntu become: true vars: required_service: gitea_mcp tasks: - name: Check if host has gitea_mcp service ansible.builtin.set_fact: has_gitea_mcp_service: "{{ required_service in services | default([]) }}" - name: Skip hosts without gitea_mcp service ansible.builtin.meta: end_host when: not has_gitea_mcp_service - name: Create gitea_mcp group ansible.builtin.group: name: "{{gitea_mcp_group}}" - name: Create gitea_mcp user ansible.builtin.user: name: "{{gitea_mcp_user}}" comment: "{{gitea_mcp_user}}" group: "{{gitea_mcp_group}}" system: true - name: Add group gitea_mcp to Ansible remote_user ansible.builtin.user: name: "{{remote_user}}" groups: "{{gitea_mcp_group}}" append: true - name: Create gitea_mcp directory ansible.builtin.file: path: "{{gitea_mcp_directory}}" owner: "{{gitea_mcp_user}}" group: "{{gitea_mcp_group}}" state: directory mode: '750' - name: Template docker-compose file ansible.builtin.template: src: docker-compose.yml.j2 dest: "{{gitea_mcp_directory}}/docker-compose.yml" owner: "{{gitea_mcp_user}}" group: "{{gitea_mcp_group}}" mode: '550' - name: Reset SSH connection to apply group changes meta: reset_connection - name: Start Gitea MCP service community.docker.docker_compose_v2: project_src: "{{gitea_mcp_directory}}" state: present pull: always