--- - name: Test Karakeep to Ollama connection hosts: localhost gather_facts: false vars: karakeep_host: "10.0.0.251" ollama_host: "10.0.0.220" ollama_port: 11434 container_name: "hoarder-web" tasks: - name: Check Ollama API is reachable ansible.builtin.uri: url: "http://{{ ollama_host }}:{{ ollama_port }}/api/tags" method: GET return_content: true status_code: 200 register: ollama_check changed_when: false - name: Show available models ansible.builtin.debug: msg: "Ollama models: {{ ollama_check.json.models | map(attribute='name') | list }}" - name: Test connectivity from Karakeep container community.docker.docker_container_exec: container: "{{ container_name }}" command: "/bin/sh -c 'wget -qO- http://{{ ollama_host }}:{{ ollama_port }}/api/tags'" delegate_to: "{{ karakeep_host }}" vars: ansible_user: chester ansible_ssh_private_key_file: /home/chester/.ssh/id_ed25519 register: container_test changed_when: false - name: Verify container can reach Ollama ansible.builtin.assert: that: - "'models' in container_test.stdout" success_msg: "Container can reach Ollama" fail_msg: "Container cannot reach Ollama" - name: Extract Ollama-related environment variables community.docker.docker_container_info: name: "{{ container_name }}" delegate_to: "{{ karakeep_host }}" vars: ansible_user: chester ansible_ssh_private_key_file: /home/chester/.ssh/id_ed25519 register: container_info - name: Show configuration ansible.builtin.debug: msg: "{{ container_info.container.Config.Env | select('match', '^(OLLAMA|INFERENCE).*') | list }}" - name: Verify configuration is correct ansible.builtin.assert: that: - "'OLLAMA_BASE_URL=http://' + ollama_host + ':' + (ollama_port | string) in container_info.container.Config.Env" - "'INFERENCE_TEXT_MODEL=llama3.1:8b' in container_info.container.Config.Env" - "'INFERENCE_IMAGE_MODEL=llama3.2-vision:11b' in container_info.container.Config.Env" success_msg: "Configuration is correct" fail_msg: "Configuration needs updating" - name: Display validation summary ansible.builtin.debug: msg: - "Validation complete" - "Ollama: {{ ollama_host }}:{{ ollama_port }}" - "Karakeep: {{ karakeep_host }}" - "Container: {{ container_name }}" - "Connection: Working" - "Config: Valid"