diff --git a/host_vars/artemis.yml b/host_vars/artemis.yml index a20d6eb..51588b3 100644 --- a/host_vars/artemis.yml +++ b/host_vars/artemis.yml @@ -29,3 +29,6 @@ hermes_config: provider: openrouter model: openai/gpt-4o-mini context_length: 128000 + +# Hermes auto-update offset (minutes from hour mark) +hermes_update_offset: 0 diff --git a/host_vars/bones.yml b/host_vars/bones.yml index d7eefbd..9a92de6 100644 --- a/host_vars/bones.yml +++ b/host_vars/bones.yml @@ -25,3 +25,6 @@ ollama_models: # Node-specific vars bones_storage: "256GB SSD" jvm_heap: "512m" + +# Hermes auto-update offset (minutes from hour mark) +hermes_update_offset: 30 diff --git a/host_vars/hulkbuster.yml b/host_vars/hulkbuster.yml index 226f198..5ad5754 100644 --- a/host_vars/hulkbuster.yml +++ b/host_vars/hulkbuster.yml @@ -6,9 +6,11 @@ gpu_type: nvidia gpu_model: "RTX 4070" vram_mb: 12282 -# GPU-specific tools (not drivers — Mark44 uses proprietary NVIDIA package) +# GPU-specific packages extra_packages: - - nvtop # GPU monitoring + - nvidia-driver # NVIDIA driver (if not already installed via proprietary) + - cuda-toolkit # CUDA toolkit for ML workloads + - nvtop # GPU monitoring (better than nvidia-smi for live view) - nethogs # Network per-process monitoring - iotop # I/O per-process monitoring @@ -17,6 +19,7 @@ ollama_models: - gemma4:e4b # Already pulled — keep it - qwen2.5-coder:14b # Primary coding model - qwen2.5:14b # General purpose large model + - mistral:7b # Fallback fast model # Services managed_services: @@ -30,3 +33,6 @@ managed_services: # Ollama port override (standard) ollama_port: 11434 open_webui_port: 8080 + +# Hermes auto-update offset (minutes from hour mark) +hermes_update_offset: 10 diff --git a/host_vars/mark5.yml b/host_vars/mark5.yml index 1d4df70..a3d32e8 100644 --- a/host_vars/mark5.yml +++ b/host_vars/mark5.yml @@ -28,3 +28,6 @@ managed_services: # Ollama port ollama_port: 11434 + +# Hermes auto-update offset (minutes from hour mark) +hermes_update_offset: 20 diff --git a/host_vars/nebuchadnezzar.yml b/host_vars/nebuchadnezzar.yml new file mode 100644 index 0000000..0c68b9b --- /dev/null +++ b/host_vars/nebuchadnezzar.yml @@ -0,0 +1,3 @@ + +# Hermes auto-update offset (minutes from hour mark) +hermes_update_offset: 40 diff --git a/local.yml b/local.yml index 4777995..1fe860d 100644 --- a/local.yml +++ b/local.yml @@ -89,6 +89,31 @@ - ansible_os_family == "Debian" tags: [artemis] + # --- Hermes auto-update cron (fleet-wide, staggered offsets) --- + - name: Ensure hermes-update cron is installed + cron: + name: "hermes auto-update" + minute: "{{ hermes_update_offset | default(0) }}" + hour: "*/8" + user: root + job: "bash -c 'echo === $(date -Iseconds) hermes update === >> /var/log/hermes-update.log 2>&1 && hermes update --y >> /var/log/hermes-update.log 2>&1'" + when: + - ansible_os_family == "Debian" + - hermes_update_offset is defined + tags: [hermes_update] + + - name: Ensure hermes-update log file exists + file: + path: /var/log/hermes-update.log + state: touch + owner: root + group: root + mode: '0666' + when: + - ansible_os_family == "Debian" + - hermes_update_offset is defined + tags: [hermes_update] + - name: Print completion message debug: msg: "Baseline complete on {{ ansible_hostname }} — node_type={{ node_type | default('unspecified') }}, gpu={{ has_gpu | default(false) }}"