Исправления: токен в переменные окружения, 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() tools = Tools()
print(tools.connection()) print(tools.connection())
print(tools.vm_create(vmid=200, name="ubuntu", ciuser="ubuntu", cipassword="1234567")) print(tools.vm_create(vmid=200, name="ubuntu", ciuser="ubuntu", cipassword="1234567"))
⚠️ Важно: токен PROXMOX_TOKEN_VALUE задаётся через переменную окружения!
export PROXMOX_TOKEN_VALUE="ваш-токен"
""" """
import json import json
import os
import re import re
import time import time
import requests import requests
# ============================================================ # ============================================================
# CONFIG - change as needed # CONFIG — из переменных окружения (с запасными значениями)
# ============================================================ # ============================================================
PROXMOX_HOST = "https://192.168.31.2:8006" PROXMOX_HOST = os.getenv("PROXMOX_HOST", "https://192.168.31.2:8006")
PROXMOX_USER = "root@pam" PROXMOX_USER = os.getenv("PROXMOX_USER", "root@pam")
PROXMOX_TOKEN_NAME = "openwebui-token" PROXMOX_TOKEN_NAME = os.getenv("PROXMOX_TOKEN_NAME", "openwebui-token")
PROXMOX_TOKEN_VALUE = "7aba7743-0133-494b-9dd7-9715f55e5dca" PROXMOX_TOKEN_VALUE = os.getenv("PROXMOX_TOKEN_VALUE", "")
VERIFY_SSL = False if not PROXMOX_TOKEN_VALUE:
DEFAULT_NODE = "pve" raise RuntimeError(
DEFAULT_STORAGE = "local" "PROXMOX_TOKEN_VALUE not set! "
DEFAULT_BRIDGE = "vmbr0" "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 # INTERNAL HELPERS
@@ -537,7 +550,7 @@ class Tools:
def vm_create_from_template( def vm_create_from_template(
vmid, vmid,
name, name,
template_vmid=999, template_vmid=DEFAULT_TEMPLATE_VMID,
full=True, full=True,
memory=None, memory=None,
cores=None, cores=None,
@@ -552,14 +565,14 @@ class Tools:
): ):
""" """
Create a new VM by cloning from a template. 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): Cloud-init params (for guest OS user setup):
ciuser: username in the guest (e.g. "ubuntu") ciuser: username in the guest (e.g. "ubuntu")
cipassword: password for the user cipassword: password for the user
sshkeys: SSH public keys (newline-separated string) 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. startup is done via separate API call after clone completes.
""" """
try: try:
@@ -663,7 +676,7 @@ class Tools:
def vm_create( def vm_create(
vmid, vmid,
name, name,
template_vmid=999, template_vmid=DEFAULT_TEMPLATE_VMID,
memory=4096, memory=4096,
cores=2, cores=2,
disk_size="32G", disk_size="32G",
@@ -685,7 +698,7 @@ class Tools:
Universal VM creation. Universal VM creation.
Modes: 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" 2. From ISO: template_vmid=None, iso="local:iso/image.iso"
Cloud-init params (for mode 1): Cloud-init params (for mode 1):