From 0d2978259d848c453c0422a6a4b902f82f4b1b37 Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Tue, 13 Jan 2026 21:58:12 -0800 Subject: [PATCH] Add kiwix role to ansible playbook Manages kiwix-serve LaunchAgent configuration for the wikipedia mirror on indri (port 5501). Co-Authored-By: Claude Opus 4.5 --- ansible/playbooks/indri.yml | 1 + ansible/roles/kiwix/defaults/main.yml | 5 ++++ ansible/roles/kiwix/handlers/main.yml | 5 ++++ ansible/roles/kiwix/tasks/main.yml | 13 +++++++++++ .../kiwix/templates/kiwix-serve.plist.j2 | 23 +++++++++++++++++++ 5 files changed, 47 insertions(+) create mode 100644 ansible/roles/kiwix/defaults/main.yml create mode 100644 ansible/roles/kiwix/handlers/main.yml create mode 100644 ansible/roles/kiwix/tasks/main.yml create mode 100644 ansible/roles/kiwix/templates/kiwix-serve.plist.j2 diff --git a/ansible/playbooks/indri.yml b/ansible/playbooks/indri.yml index ae51806..bd2ef9a 100644 --- a/ansible/playbooks/indri.yml +++ b/ansible/playbooks/indri.yml @@ -4,3 +4,4 @@ roles: - prometheus - grafana + - kiwix diff --git a/ansible/roles/kiwix/defaults/main.yml b/ansible/roles/kiwix/defaults/main.yml new file mode 100644 index 0000000..839c04f --- /dev/null +++ b/ansible/roles/kiwix/defaults/main.yml @@ -0,0 +1,5 @@ +--- +kiwix_serve_bin: /Users/erichblume/code/3rd/kiwix-tools/kiwix-serve +kiwix_zim_file: /Users/erichblume/code/3rd/kiwix-tools/wikipedia_en_top1m_maxi_2025-09.zim +kiwix_port: 5501 +kiwix_log_dir: /Users/erichblume/Library/Logs diff --git a/ansible/roles/kiwix/handlers/main.yml b/ansible/roles/kiwix/handlers/main.yml new file mode 100644 index 0000000..0c4d6b2 --- /dev/null +++ b/ansible/roles/kiwix/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart kiwix-serve + ansible.builtin.shell: | + launchctl unload ~/Library/LaunchAgents/mcquack.eblume.kiwix-serve.plist 2>/dev/null || true + launchctl load ~/Library/LaunchAgents/mcquack.eblume.kiwix-serve.plist diff --git a/ansible/roles/kiwix/tasks/main.yml b/ansible/roles/kiwix/tasks/main.yml new file mode 100644 index 0000000..6965b69 --- /dev/null +++ b/ansible/roles/kiwix/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Deploy kiwix-serve LaunchAgent plist + ansible.builtin.template: + src: kiwix-serve.plist.j2 + dest: ~/Library/LaunchAgents/mcquack.eblume.kiwix-serve.plist + mode: '0644' + notify: restart kiwix-serve + +- name: Ensure kiwix-serve is loaded + ansible.builtin.command: launchctl load ~/Library/LaunchAgents/mcquack.eblume.kiwix-serve.plist + register: launchctl_load + changed_when: launchctl_load.rc == 0 + failed_when: false diff --git a/ansible/roles/kiwix/templates/kiwix-serve.plist.j2 b/ansible/roles/kiwix/templates/kiwix-serve.plist.j2 new file mode 100644 index 0000000..12d18f0 --- /dev/null +++ b/ansible/roles/kiwix/templates/kiwix-serve.plist.j2 @@ -0,0 +1,23 @@ + + + + + + KeepAlive + + Label + mcquack.eblume.kiwix-serve + ProgramArguments + + {{ kiwix_serve_bin }} + --port={{ kiwix_port }} + {{ kiwix_zim_file }} + + RunAtLoad + + StandardErrorPath + {{ kiwix_log_dir }}/mcquack.kiwix-serve.err.log + StandardOutPath + {{ kiwix_log_dir }}/mcquack.kiwix-serve.out.log + +