Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Импортировать диск из файла через API.

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Импортировать диск из файла через API., Proxmox Виртуальная Среда
     
    anzure
    Guest
    #1
    0
    26.07.2021 16:19:00
    Я знаю, что можно импортировать диск из файла в VM, используя CLI: `qm importdisk 9000 bionic-server-cloudimg-amd64.img local-lvm`. Но я хочу сделать это через API, но endpoint для этого отсутствует. Я пытался изменить конфигурацию и переместить диск. Конфигурация VM выглядит так:

    `POST /api2/json/nodes/pve/qemu/9000/config`

    `Code:
    vmid= 9000
    name= ubuntu-tmp
    net0= virtio,bridge=vmbr0
    memory= 2048
    scsihw= virtio-scsi-pci
    scsi0= local:iso/bionic-server-cloudimg-amd64.img
    ide2= local-lvm:cloudinit
    bootdisk= scsi0
    boot= c`

    Перемещение диска:

    `POST /api2/json/nodes/pve/qemu/9000/move_disk`

    `Code:
    disk= scsi0
    storage= local-lvm`

    Каждая попытка заканчивается сообщением "no bootable devices found" (ошибка BIOS). А при использовании CLI команды `importdisk` все работает отлично. Есть какие-нибудь предложения по обходному пути?
     
     
     
    supermario87
    Guest
    #2
    0
    19.10.2021 13:57:00
    Да, немного воскрешаю тему, чтобы подтвердить, что брать образ диска из storage:iso/image не работает с API-эндпойнтом move_disk. Работает только с утилитой qm importdisk (cli, собственно, importdisk может взять образ из любого пути). @Fabian_E, какие-нибудь обновления по функциональности importdisk в API-эндпойнте?
     
     
     
    fiona
    Guest
    #3
    0
    20.10.2021 09:40:00
    К сожалению, дать какую-то оценку срокам, когда функция станет доступна, не могу. Боюсь, что может ещё немного затянуться.
     
     
     
    fiona
    Guest
    #4
    0
    06.07.2022 11:26:00
    Функция доступна с qemu-server >= 7.1-5. Вместо собственного API-endpoint'а есть свойство import-from, которое можно использовать при настройке диска виртуальной машины. Например, команда: pvesh set /nodes/pve701/qemu/105/config --scsi1 local:0,discard=on,import-from=myzpool:vm-123-disk-0
    ...
    Создает полный клон диска scsi0 (myzpool:vm-123-disk-0)
    ...
    scsi1: успешно создан диск 'local:105/vm-105-disk-1.raw,discard=on,size=103M' с требуемым синтаксисом <target storage>:0. Это также можно использовать при создании ВМ. EDIT: Для полноты картины стоит упомянуть, что можно также указать абсолютный путь в качестве источника импорта.
     
     
     
    dermorz
    Guest
    #5
    0
    06.07.2022 15:52:00
    Я не могу подтвердить, что: Bash: curl -XPOST --silent -v --insecure -H "Authorization: PVEAPIToken=$(cat ./proxmox-api-token.txt)" -H "Content-Type: application/json" \
    --data '{"vmid": 102, "scsihw": "virtio-scsi-pci", "virtio0": "local:0,import-from=/var/lib/vz/template/iso/ubuntu-server-cloudimg-amd64.img", "agent": 1, "serial0": "socket"}' \
    https://192.168.121.209:8006/api2/json/nodes/bullseye/qemu
    HTTP/1.1 500 Only root can pass arbitrary filesystem paths. at /usr/share/perl5/PVE/Storage.pm line 539.
     
     
     
    fiona
    Guest
    #6
    0
    07.07.2022 08:51:00
    Сообщение об ошибке точно указывает, в чем дело. Возможность передавать произвольные пути — это риск для безопасности, поэтому это нужно ограничить.
     
     
     
    dermorz
    Guest
    #7
    0
    07.07.2022 09:06:00
    Я с тобой в этом согласен. Просто я немного запутался, потому что это не совпадало с тем, что ты писал раньше в этой ветке. Кстати, я аутентифицирован как root@pam с неограниченным API-токеном, так что сообщение об ошибке тоже получилось немного вводящим в заблуждение.
     
     
     
    fiona
    Guest
    #8
    0
    07.07.2022 09:10:00
    Тебе просто нужны нужные права для этого. Аутентификация с помощью токена API для root@pam — это не то же самое, что аутентификация как root@pam. Иначе токены для root@pam тоже были бы риском для безопасности.
     
     
     
    dermorz
    Guest
    #9
    0
    07.07.2022 09:18:00
    Отлично, хорошо, что знаешь. Но даже если бы у меня были нужные права, в конце концов оно опять бы выдало ошибку, сказав, что изображение не изображение, а iso. Да? (Смотри https://forum.proxmox.com/threads/new-vm-from-cloud-init-image-via-api.111091/#post-482517 ) Спасибо за все ответы!
     
     
     
    fiona
    Guest
    #10
    0
    07.07.2022 09:26:00
    По идее, должно работать. Если память не изменяет, проверку типа контента не должно быть при выполнении с абсолютными путями.
     
     
     
    dermorz
    Guest
    #11
    0
    07.07.2022 09:45:00
    Интересно. Может, стоит это изучить. Но с другой стороны, я не уверен, стоит ли требовать от пользователя интеграции полные права, если назначение этой интеграции просто создание виртуальных машин. Но для полноты картины: абсолютный путь всегда будет /var/lib/vz/template/iso/<filename> или это зависит от подключенного и используемого хранилища, верно? Есть ли какой-то детерминированный способ получить абсолютный путь через API?
     
     
     
    fiona
    Guest
    #12
    0
    07.07.2022 10:09:00
    Да, конечно. Согласен, что сейчас нет хорошего рабочего процесса для этого. Я только что создал соответствующий запрос на улучшение. Это зависит от хранилища. Можно GET /storage/<storage ID>, результат которого включает базовый путь хранилища. Остальная часть пути — template/iso/<название образа>.
     
     
     
    ridingroedeer
    Guest
    #13
    0
    14.08.2024 08:15:00
    Я знаю, что это довольно старая тема, и видел, что запрос на улучшение для API-токенов root@pam уже реализован. Есть ли какие-нибудь новости/прогресс в том, чтобы позволить пользователям, аутентифицированным с не-root@pam API-токенами, импортировать vendor prepared cloud images с параметром import-from?
     
     
     
    fiona
    Guest
    #14
    0
    14.08.2024 10:13:00
    Работа над возможностью импорта из OVA/OVF ведется @dcsapak: https://lists.proxmox.com/pipermail/pve-devel/2024-May/063974.html Возможно, в будущем эта функциональность будет расширена и для "обычных" образов.
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры