Add support for Ubuntu containers and WSL verification

- Implemented tasks for managing Ubuntu containers using Podman, including inspection, creation, starting, and SSH setup.
- Added verification tasks for WSL and Podman installation, machine existence, and NSSM service status.
- Created PowerShell scripts for Podman auto-start on Windows boot.
- Introduced Prometheus role with default configurations and installation tasks.
- Updated Windows SSH role to improve authorized_keys management and permissions handling.
- Modified inventory to include Windows containers host.
- Updated Grafana datasource configurations with direct IP addresses for Prometheus instances.
This commit is contained in:
2026-06-07 20:35:59 +02:00
parent 3775fa4b6e
commit 25d3eafa5b
34 changed files with 1475 additions and 155 deletions
@@ -65,7 +65,7 @@
- name: Install Windows Exporter service via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- "nssm.exe"
- install
- llama-exporter
- "{{ __exporter_venv_python }}"
@@ -78,7 +78,7 @@
- name: Set exporter AppDirectory via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- "nssm.exe"
- set
- llama-exporter
- AppDirectory
@@ -87,7 +87,7 @@
- name: Configure exporter stdout log via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- "nssm.exe"
- set
- llama-exporter
- AppStdout
@@ -96,7 +96,7 @@
- name: Configure exporter stderr log via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- "nssm.exe"
- set
- llama-exporter
- AppStderr
@@ -105,7 +105,7 @@
- name: Set exporter environment variables
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- "nssm.exe"
- set
- llama-exporter
- AppEnvironmentExtra
@@ -116,7 +116,7 @@
- name: Set exporter Start mode to AUTO via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- "nssm.exe"
- set
- llama-exporter
- Start
@@ -4,13 +4,11 @@
- name: Define Windows paths and versions
ansible.builtin.set_fact:
__llama_user: "{{ llama_server_windows_user }}"
__nssm_exe: "{{ llama_server_windows_nssm_dir }}\\nssm.exe"
__llama_release_asset_name: "{{ 'llama-' ~ llama_server_windows_version ~ '-bin-win-' ~ llama_server_windows_backend ~ (llama_server_windows_backend == 'cuda') | ternary('-' ~ llama_server_cuda_version, '') ~ '-x64.zip' }}"
__llama_release_zip_url: "https://github.com/ggml-org/llama.cpp/releases/download/{{ llama_server_windows_version }}/{{ 'llama-' ~ llama_server_windows_version ~ '-bin-win-' ~ llama_server_windows_backend ~ (llama_server_windows_backend == 'cuda') | ternary('-' ~ llama_server_cuda_version, '') ~ '-x64.zip' }}"
__llama_release_zip_path: "{{ (ansible_env.TEMP | default('C:\\Windows\\Temp')) }}\\{{ 'llama-' ~ llama_server_windows_version ~ '-bin-win-' ~ llama_server_windows_backend ~ (llama_server_windows_backend == 'cuda') | ternary('-' ~ llama_server_cuda_version, '') ~ '-x64.zip' }}"
__llama_release_marker: "{{ llama_server_windows_install_dir }}\\.release-{{ 'llama-' ~ llama_server_windows_version ~ '-bin-win-' ~ llama_server_windows_backend ~ (llama_server_windows_backend == 'cuda') | ternary('-' ~ llama_server_cuda_version, '') ~ '-x64.zip' }}"
__nssm_zip_path: "{{ (ansible_env.TEMP | default('C:\\Windows\\Temp')) }}\\nssm.zip"
__llama_sync_script: "{{ llama_server_windows_working_dir }}\\.router\\llama_hf_sync_windows.py"
__llama_sync_script: "{{ llama_server_windows_working_dir }}\\.router\\llama_hf_sync.py"
__llama_models_json: "{{ llama_server_windows_working_dir }}\\.router\\desired-models.json"
__llama_preset_global_json: "{{ llama_server_windows_working_dir }}\\.router\\preset-global.json"
__llama_managed_dir: "{{ llama_server_windows_working_dir }}\\models\\managed"
@@ -118,35 +116,13 @@
Check download/unzip and llama_server_windows_backend settings.
when: not __llama_bin_stat.stat.exists
- name: Check if NSSM is installed
ansible.windows.win_stat:
path: "{{ llama_server_windows_nssm_dir }}\\nssm-{{ llama_server_windows_nssm_version }}\\win64\\nssm.exe"
register: __nssm_stat
- name: Download NSSM if not installed
ansible.windows.win_get_url:
url: "{{ llama_server_windows_nssm_url }}"
dest: "{{ __nssm_zip_path }}"
force: false
when: not __nssm_stat.stat.exists
- name: Extract NSSM if not installed
community.windows.win_unzip:
src: "{{ __nssm_zip_path }}"
dest: "{{ llama_server_windows_nssm_dir }}"
delete_archive: false
creates: "{{ llama_server_windows_nssm_dir }}\\nssm-{{ llama_server_windows_nssm_version }}\\win64\\nssm.exe"
when: not __nssm_stat.stat.exists
- name: Copy NSSM executable
ansible.windows.win_copy:
src: "{{ llama_server_windows_nssm_dir }}\\nssm-{{ llama_server_windows_nssm_version }}\\win64\\nssm.exe"
dest: "{{ __nssm_exe }}"
remote_src: true
- name: Install NSSM
ansible.builtin.include_role:
name: nssm
- name: Copy Windows-compatible Hugging Face sync script
ansible.windows.win_copy:
src: scripts/llama_hf_sync_windows.py
src: scripts/windows/llama_hf_sync.py
dest: "{{ __llama_sync_script }}"
mode: "0750"
@@ -244,7 +220,7 @@
argv: >-
{{
[
__nssm_exe,
'nssm.exe',
'install',
'llama-server',
(llama_server_windows_install_dir ~ '\\' ~ llama_server_windows_bin_name),
@@ -268,7 +244,7 @@
- name: Set llama-server AppDirectory via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- nssm.exe
- set
- llama-server
- AppDirectory
@@ -277,7 +253,7 @@
- name: Configure llama-server stdout log via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- nssm.exe
- set
- llama-server
- AppStdout
@@ -286,7 +262,7 @@
- name: Configure llama-server stderr log via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- nssm.exe
- set
- llama-server
- AppStderr
@@ -295,7 +271,7 @@
- name: Set llama-server Start mode to AUTO via NSSM
ansible.windows.win_command:
argv:
- "{{ __nssm_exe }}"
- nssm.exe
- set
- llama-server
- Start