Привет, я использую API для создания свежей ВМ путем импорта образа qcow2, в данном случае, стандартный образ Debian 12 qcow2. Вот моя JSON-строка, которую я использую для создания ВМ. Код:
{
"vmid": "222",
"name": "jack",
"agent": 1,
"balloon": 512,
"cores": 1,
"description": "Server for jack",
"ipconfig0": "ip=dhcp",
"memory": "4096",
"net0": "virtio,bridge=vmbr0,firewall=0,tag=20",
"ostype": "l26",
"scsihw": "virtio-scsi-single",
"serial0": "socket",
"start": 0,
"vga": "type=serial0",
"virtio0": "file=local:222,import-from=/root/debian-12-generic-amd64-12.qcow2,size=12G,discard=on",
"cipassword": "debian",
"storage":"local"
}
Проблема в том, что образ расположен в домашней директории пользователя root. Поэтому, если я делаю это через CLI, я могу импортировать образ в только что созданную ВМ без загрузочного диска. Когда я пытаюсь сделать это через API POST-запрос к этому эндпоинту pve0.mgmt.local:8006/api2/json/nodes/pve0/qemu, я получаю следующую ошибку. 500 Только root может передавать произвольные пути к файловой системе. at /usr/share/perl5/PVE/Storage.pm line 561. Я пытался использовать учетную запись root, создав для нее токен, но все равно получаю ту же ошибку. Думаю, мне нужно разместить образ где-то, где не требуются права root. Существующий образ находится в /var/lib/vz/images/{vmdi}/. Мне просто нужно придумать vmid и сохранить образ в этой директории? Не совсем уверен, что делать. Уверен, что упускаю что-то очевидное. Буду очень благодарен за любую помощь. Спасибо, Брэд.
{
"vmid": "222",
"name": "jack",
"agent": 1,
"balloon": 512,
"cores": 1,
"description": "Server for jack",
"ipconfig0": "ip=dhcp",
"memory": "4096",
"net0": "virtio,bridge=vmbr0,firewall=0,tag=20",
"ostype": "l26",
"scsihw": "virtio-scsi-single",
"serial0": "socket",
"start": 0,
"vga": "type=serial0",
"virtio0": "file=local:222,import-from=/root/debian-12-generic-amd64-12.qcow2,size=12G,discard=on",
"cipassword": "debian",
"storage":"local"
}
Проблема в том, что образ расположен в домашней директории пользователя root. Поэтому, если я делаю это через CLI, я могу импортировать образ в только что созданную ВМ без загрузочного диска. Когда я пытаюсь сделать это через API POST-запрос к этому эндпоинту pve0.mgmt.local:8006/api2/json/nodes/pve0/qemu, я получаю следующую ошибку. 500 Только root может передавать произвольные пути к файловой системе. at /usr/share/perl5/PVE/Storage.pm line 561. Я пытался использовать учетную запись root, создав для нее токен, но все равно получаю ту же ошибку. Думаю, мне нужно разместить образ где-то, где не требуются права root. Существующий образ находится в /var/lib/vz/images/{vmdi}/. Мне просто нужно придумать vmid и сохранить образ в этой директории? Не совсем уверен, что делать. Уверен, что упускаю что-то очевидное. Буду очень благодарен за любую помощь. Спасибо, Брэд.

