Add devpi PyPI caching proxy role for indri (#9)
## Summary - Add ansible role for devpi-server as a transparent PyPI caching proxy - LaunchAgent with KeepAlive runs via `mise x -- devpi-server` - Listens on port 3141, data stored in `~/devpi` - Health checks added to `indri-services-check` script ## Manual Setup Required (on indri, before provisioning) 1. Add to `~/.config/mise/config.toml`: ```toml [tools] "pipx:devpi-server" = "latest" "pipx:devpi-web" = "latest" "pipx:devpi-client" = "latest" ``` 2. Run `mise install` 3. Initialize: `mise x -- devpi-init --serverdir ~/devpi` ## Post-Provisioning - Set up Tailscale service `pypi` on port 443 → 3141 - Configure client pip.conf with index-url ## Test plan - [x] Ansible syntax check passes - [x] Dry-run: `mise run provision-indri -- --check --diff` - [x] Apply: `mise run provision-indri` - [x] Health check: `mise run indri-services-check` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.tail8d86e.ts.net/eblume/blumeops/pulls/9
This commit is contained in:
parent
50c713b5de
commit
d8a0ef6482
15 changed files with 679 additions and 2 deletions
36
ansible/roles/devpi_metrics/tasks/main.yml
Normal file
36
ansible/roles/devpi_metrics/tasks/main.yml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
- name: Ensure metrics directory exists
|
||||
ansible.builtin.file:
|
||||
path: "{{ devpi_metrics_dir }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Ensure log directory exists
|
||||
ansible.builtin.file:
|
||||
path: "{{ devpi_metrics_log_dir }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Deploy devpi-metrics script
|
||||
ansible.builtin.template:
|
||||
src: devpi-metrics.sh.j2
|
||||
dest: "{{ devpi_metrics_script }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Deploy devpi-metrics LaunchAgent plist
|
||||
ansible.builtin.template:
|
||||
src: devpi-metrics.plist.j2
|
||||
dest: ~/Library/LaunchAgents/mcquack.eblume.devpi-metrics.plist
|
||||
mode: '0644'
|
||||
notify: reload devpi-metrics
|
||||
|
||||
- name: Check if devpi-metrics LaunchAgent is loaded
|
||||
ansible.builtin.command: launchctl list mcquack.eblume.devpi-metrics
|
||||
register: launchctl_check
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Load devpi-metrics LaunchAgent if not loaded
|
||||
ansible.builtin.command: launchctl load ~/Library/LaunchAgents/mcquack.eblume.devpi-metrics.plist
|
||||
when: launchctl_check.rc != 0
|
||||
failed_when: false
|
||||
Loading…
Add table
Add a link
Reference in a new issue