75 lines
2.6 KiB
YAML
75 lines
2.6 KiB
YAML
---
|
|
- 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"
|