LINUX.ORG.RU

Релиз nEMU 3.0.0 — интерфейса к QEMU, основанного на псевдографике ncurses

 ,

Релиз nEMU 3.0.0 — интерфейса к QEMU, основанного на псевдографике ncurses

4

3

Состоялся релиз nEMU версии 3.0.0.

nEMU — это ncurses-интерфейс к QEMU, упрощающий создание, настройку и управление виртуальными машинами.
Код написан на языке C и распространяется под лицензией BSD-2.

Основные изменения:

  • Поддержка -netdev user (hostfwd, smb). Позволяет без каких-либо дополнительных настроек сети предоставить доступ во внешнюю сеть виртуальной машине.
  • Поддержка QMP команд snapshot-{save, load, delete}, появившихся в QEMU-6.0.0. Теперь для работы со снепшотами больше нет необходимости патчить QEMU.
  • Корректное отображение форм ввода и редактирования параметров при изменении размера окна (баге было семь лет, @GrafIn героически пофиксил).
  • API для удаленного управления виртуальными машинами. Теперь nEMU умеет принимать JSON команды через TLS сокет. Описание методов находится в файле remote_api.txt. Также был написан Android клиент. С помощью него в данный момент можно запускать, останавливать и подключаться к виртуальным машинам по протоколу SPICE.

Новые параметры в файле конфигурации, секция [nemu-monitor]:

  • remote_control - включает API.
  • remote_port - порт, на котором слушает TLS сокет, по умолчанию 20509.
  • remote_tls_cert - путь до публичного сертификата.
  • remote_tls_key - путь до закрытого ключа сертификата.
  • remote_salt - соль.
  • remote_hash - контрольная сумма от пароля плюс соль (sha256).

Ебилды, deb, rpm, nix и прочие сборки есть в репозитории.

>>> Подробности

★★★

Проверено: Shaman007 ()
Последнее исправление: demidrol (всего исправлений: 3)

О, как раз такое искал, спасибо!

Parthen ★★
()

Снепшоты? Нравится.

anonymous
()
Ответ на: комментарий от anonymous

еще там можно поиграть в клон space invaders, я впилил пасхалку в честь мажерного релиза)

pascal ★★★
() автор топика

Напомните почему все эти ncurses не считаются хипсторским говном, но каждый второй админ локалхоста течет от них в комментариях? Почему такое не рисуют на SDL, имея все его возможности, но при этом избегая все приколы терминалов?

anonymous
()

В чём принципиальные отличия от libvirt? Почему именно своя реализация, а не фронт к той же libvirt, особенно в свете появления API?

anonymous
()
Ответ на: комментарий от anonymous

Я лет 8 назад потыкал в этот либвирт, в итоге пришлось писать свою реализацию с нуля. Пусть оно живет там своей жизнью, я к этому прикасаться не хочу.

pascal ★★★
() автор топика

Поддержка QMP команд snapshot-{save, load, delete}, появившихся в QEMU-6.0.0. Теперь для работы со снепшотами больше нет необходимости патчить QEMU.

А через monitor их дёргать не судьба было? Мда.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Нет, при старте VM процесс QEMU демонизируется с управлением через сокет с QMP api, монитор тут вообще не при делах.

pascal ★★★
() автор топика
Последнее исправление: pascal (всего исправлений: 1)
Ответ на: комментарий от pascal

Поленился использовать либо оба одновременно, либо вызов мониторных команд через QMP. В результате лени, как я понял, в Вилларибо годами зря патчили QEMU, а все Виллабаджо смотрит на тебя сейчас с удивлением.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Ну тут все 3 варианта - костыли:

human-monitor-command - «This command only exists as a stop-gap. Its use is highly discouraged. The semantics of this command are not guaranteed: this means that command names, arguments and responses can change or be removed at ANY time. Applications that rely on long term stability guarantees should NOT use this command.»

Использование QMP одновременно с прямым взаимодействием с qemu-monitor для меня лично выглядит странно, вроде как для машинного взаимодействия и придумали QMP. Тогда уж проще все через qemu-monitor делать.

Мы просто патчили qemu, в итоге все взаимодействие через QMP, вызовов негарантированного API не было. Как только в upstream таки добавили snapshot-{save, load, delete}, было не сложно переехать.

GrafIn
()
Ответ на: комментарий от GrafIn

// было не сложно переехать
ну как не сложно, учитывая что снепшот команды они сделали асинхронными, мне пришлось попотеть)
---
про монитор я вообще не понимаю при чем оно тут ибо nemu позицианируется как X-free приложение)

pascal ★★★
() автор топика
Последнее исправление: pascal (всего исправлений: 1)
Ответ на: комментарий от pascal

монитор я вообще не понимаю при чем оно тут ибо nemu позицианируется как X-free приложение)

QEMU monitor. Ты точно имеешь к сабжу отношение?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Если вы имеете ввиду -monitor redirect to blablabla. То оно не в тему, это для интерактива. Для автоматизации в QEMU есть QMP, который мы и используем, вы точно имеете отношение к разработке ПО?

pascal ★★★
() автор топика
Последнее исправление: pascal (всего исправлений: 3)
Ответ на: комментарий от pascal

Жаль. Утилита хороша, со своей задачей справляется (а судя по описанию стала ещё лучше; я тыкал уже достаточно давно).

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

У меня была мысль запилить поддержку bhyve, но по сути это получилось бы совсем другое приложение, т.к. переписать надо все ядро.

pascal ★★★
() автор топика
Ответ на: комментарий от pascal

т.к. переписать надо все ядро

Если у вас всё завязано на QEMU, то оно того не стоит.

Ну и да, тут понадобится тот, кто шарит в bhyve на достаточном уровне, я даже консультацию не потяну, сомневаюсь что у меня достаточно знаний.

nEMU мне нравится, но применять его негде. ☹

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

Я тоже так думал. До сегодняшнего дня. ☺

Я в виртуализации не шарю, потому в код даже не пробовал заглядывать.

mord0d ★★★★★
()
Ответ на: комментарий от pascal

Если вы имеете ввиду -monitor redirect to blablabla. То оно не в тему, это для интерактива. Для автоматизации в QEMU есть QMP

Отличное разделение, сам придумал или приставкой human- вдохновился? Ну да, пользователи и без снапшотов посидят, не юзать же стабильное API для доступа к старой как не знаю что функциональности.

вы точно имеете отношение к разработке ПО?

Ты имеешь в виду разработку именно оберток для QEMU? Да не особо. Я там ссылку кидал на одну свою писульку, вот другая, покороче, если ту читать вломак. Там сам решай.

t184256 ★★★★★
()

Я как-то тыкал я, но меня смутило отсутствие бриджа (не Mac tap) для создания изолированной сетки между VM.

anonymous
()
Ответ на: комментарий от pascal

Если вы имеете ввиду -monitor redirect to blablabla. То оно не в тему, это для интерактива.

Почему для интерактива? Я запускал qemu, в сокет-файл монитор выводил и скриптами туда писал некоторые команды. Вроде работало. Для интерактива, конечно, тоже можно использовать, но почему бы его не использовать для автоматизации - не очевидно.

Legioner ★★★★★
()
Ответ на: комментарий от t184256

Понятно, проехали. То что вы поленились пропатчить QEMU и пользовали костыли это ваше право.

pascal ★★★
() автор топика
Ответ на: комментарий от pascal

У себя на локалхосте с NixOS я что угодно могу, и QEMU для какой-то спайсомелочи патчу, но я не мэйнтейнер QEMU, чтобы в Red Hat-based дистрам его всем пользователям патчить.

t184256 ★★★★★
()

ох, молодцы! редхату такое и не снилось.

crypt ★★★★★
()
Ответ на: комментарий от crypt

Ну я бы даже проспонсировал реализацию, но… в общем, читай тред, тут всё есть.

по-моему оба через libvirt можно использовать

Ну… В принципе да, но хотелось что-нибудь… человеческое. С одной стороны меня полностью устраивает sysutils/vm-bhyve, но у него совершенно нет API — ходи по ssh и пинай скрипты напрямую. Оно даже json выплёвывать не умеет, чтобы заскриптовать API сбоку.

А сабж умеет, но, оказалось, оно не через libvirt (внезапно!).

mord0d ★★★★★
()

Я джва года ждал такую программу и вы утаивали? Посмотрим… В дистры не отправлял?

pihter ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.