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:
@@ -55,7 +55,7 @@
|
||||
loop:
|
||||
- models
|
||||
- .cache
|
||||
- .cache/llama.cpp
|
||||
- .cache/llamacpp
|
||||
|
||||
- name: "Add SSH Authorized key"
|
||||
become: true
|
||||
@@ -130,7 +130,7 @@
|
||||
|
||||
- name: Create pods
|
||||
containers.podman.podman_container:
|
||||
name: "llama.cpp"
|
||||
name: "llamacpp"
|
||||
image: "{{ llama_server_image }}:{{ llama_server_tag }}"
|
||||
state: started
|
||||
device: "{{ llama_server_devices | default(omit) }}"
|
||||
@@ -159,7 +159,7 @@
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: podman.service.j2
|
||||
dest: "/etc/systemd/system/podman-llama.cpp.service"
|
||||
dest: "/etc/systemd/system/podman-llamacpp.service"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
@@ -172,7 +172,7 @@
|
||||
- name: Enable containers at boot
|
||||
become: true
|
||||
ansible.builtin.systemd:
|
||||
name: "podman-llama.cpp"
|
||||
name: "podman-llamacpp"
|
||||
enabled: true
|
||||
state: "started"
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
- name: Copy llama server Hugging Face sync helper
|
||||
become: true
|
||||
ansible.builtin.copy:
|
||||
src: scripts/llama_hf_sync.py
|
||||
src: scripts/linux/llama_hf_sync.py
|
||||
dest: "{{ llama_server_home }}/models/.router/llama_hf_sync.py"
|
||||
owner: "{{ llama_server_user }}"
|
||||
group: "{{ llama_server_group }}"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user