350650ecc2
- Create systemd service templates for llama_exporter, nvidia_exporter, and podman. - Add Prometheus configuration template for GPU metrics scraping. - Introduce variables for GPU monitoring role in main.yml. - Implement tasks for syncing llama models, including user setup and package installation. - Update podman tasks to ensure proper sudo access and lingering for the podman user. - Modify inventory to include gpu_monitoring group. - Add Terraform modules for deploying Vaultwarden, including ingress and service configurations. - Create Grafana dashboard for real-time GPU monitoring metrics. - Update secrets and environment files to include Vaultwarden admin token.
36 lines
1.1 KiB
Django/Jinja
36 lines
1.1 KiB
Django/Jinja
[Unit]
|
|
Description=LLM Inference Metrics Exporter (llama.cpp + Ollama)
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User={{ llama_exporter_user }}
|
|
Group={{ llama_exporter_user }}
|
|
WorkingDirectory={{ llama_exporter_install_dir }}
|
|
Environment="LLAMA_EXPORTER_PORT={{ llama_exporter_port }}"
|
|
Environment="LLAMA_EXPORTER_BIND=0.0.0.0"
|
|
Environment="LLAMA_EXPORTER_INTERVAL={{ llama_exporter_scrape_interval }}"
|
|
Environment="LLAMA_EXPORTER_TIMEOUT={{ llama_exporter_scrape_timeout }}"
|
|
{% if llama_exporter_targets and llama_exporter_targets != "" %}
|
|
Environment="LLAMA_TARGETS={{ llama_exporter_targets | to_json }}"
|
|
{% endif %}
|
|
Environment="PATH={{ llama_exporter_venv_bin }}:/usr/bin:/bin"
|
|
ExecStart={{ llama_exporter_venv_bin }}/python3 {{ llama_exporter_script_path }}
|
|
Restart=always
|
|
RestartSec=10
|
|
TimeoutStopSec=10
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=llama_exporter
|
|
|
|
# Security hardening
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths={{ llama_exporter_install_dir }} /var/log
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|