Исправления: токен в переменные окружения, template_vmid=1000, +os import
This commit is contained in:
+27
-14
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user