Исправления: токен в переменные окружения, template_vmid=1000, +os import

This commit is contained in:
2026-07-24 00:49:37 +03:00
parent 3e74712309
commit 9de9227ca2
+27 -14
View File
@@ -10,24 +10,37 @@ Usage:
tools = Tools()
print(tools.connection())
print(tools.vm_create(vmid=200, name="ubuntu", ciuser="ubuntu", cipassword="1234567"))
⚠️ Важно: токен PROXMOX_TOKEN_VALUE задаётся через переменную окружения!
export PROXMOX_TOKEN_VALUE="ваш-токен"
"""
import json
import os
import re
import time
import requests
# ============================================================
# CONFIG - change as needed
# CONFIG — из переменных окружения (с запасными значениями)
# ============================================================
PROXMOX_HOST = "https://192.168.31.2:8006"
PROXMOX_USER = "root@pam"
PROXMOX_TOKEN_NAME = "openwebui-token"
PROXMOX_TOKEN_VALUE = "7aba7743-0133-494b-9dd7-9715f55e5dca"
VERIFY_SSL = False
DEFAULT_NODE = "pve"
DEFAULT_STORAGE = "local"
DEFAULT_BRIDGE = "vmbr0"
PROXMOX_HOST = os.getenv("PROXMOX_HOST", "https://192.168.31.2:8006")
PROXMOX_USER = os.getenv("PROXMOX_USER", "root@pam")
PROXMOX_TOKEN_NAME = os.getenv("PROXMOX_TOKEN_NAME", "openwebui-token")
PROXMOX_TOKEN_VALUE = os.getenv("PROXMOX_TOKEN_VALUE", "")
if not PROXMOX_TOKEN_VALUE:
raise RuntimeError(
"PROXMOX_TOKEN_VALUE not set! "
"Export it as environment variable, e.g.:\n"
" export PROXMOX_TOKEN_VALUE='7aba7743-0133-494b-9dd7-9715f55e5dca'"
)
VERIFY_SSL = os.getenv("PROXMOX_VERIFY_SSL", "false").lower() in ("true", "1", "yes")
DEFAULT_NODE = os.getenv("PROXMOX_NODE", "pve")
DEFAULT_STORAGE = os.getenv("PROXMOX_STORAGE", "local")
DEFAULT_BRIDGE = os.getenv("PROXMOX_BRIDGE", "vmbr0")
# Шаблон для клонирования VM (по умолчанию ID:1000 — cloud-init)
DEFAULT_TEMPLATE_VMID = int(os.getenv("PROXMOX_TEMPLATE_VMID", "1000"))
# ============================================================
# INTERNAL HELPERS
@@ -537,7 +550,7 @@ class Tools:
def vm_create_from_template(
vmid,
name,
template_vmid=999,
template_vmid=DEFAULT_TEMPLATE_VMID,
full=True,
memory=None,
cores=None,
@@ -552,14 +565,14 @@ class Tools:
):
"""
Create a new VM by cloning from a template.
Default template: VM #999 (ubuntu-2404-ci).
Default template: VM #1000 (cloud-init).
Cloud-init params (for guest OS user setup):
ciuser: username in the guest (e.g. "ubuntu")
cipassword: password for the user
sshkeys: SSH public keys (newline-separated string)
FIXED: "start" parameter is NOT sent to /clone -
FIXED: "start" parameter is NOT sent to /clone
startup is done via separate API call after clone completes.
"""
try:
@@ -663,7 +676,7 @@ class Tools:
def vm_create(
vmid,
name,
template_vmid=999,
template_vmid=DEFAULT_TEMPLATE_VMID,
memory=4096,
cores=2,
disk_size="32G",
@@ -685,7 +698,7 @@ class Tools:
Universal VM creation.
Modes:
1. From template (default): clones VM #999 (ubuntu-2404-ci)
1. From template (default): clones VM #1000 (cloud-init)
2. From ISO: template_vmid=None, iso="local:iso/image.iso"
Cloud-init params (for mode 1):