Как подключить qemu-guest-agent на VM в Proxmox

Сегодня расскажу как подключить на виртуальную машину (ВМ) в Proxmox утилиту qemu-guest-agent для просмотра IP-адреса через WEB-интерфейс и правильной завершении работы ВМ.
Что такое qemu-guest-agent
qemu-guest-agent — это вспомогательный демон, который устанавливается в гостевой системе. Он используется для обмена информацией между хостом и гостем, а также для выполнения команды в госте.
В Proxmox VE qemu-guest-agent используется в основном для двух вещей:
- Чтобы правильно завершить работу гостя, вместо того чтобы полагаться на команды ACPI или политики Windows
- Чтобы заморозить гостевую файловую систему при создании резервной копии (в Windows используйте службу теневого копирования томов VSS).
Установка qemu-guest-agent
На Proxmox
Вы должны установить гостевой агент в каждой виртуальной машине, а затем включить его, вы можете сделать это в веб-интерфейсе Proxmox VE (GUI).

или через CLI:
qm set VMID --agent 1
На Linux VM
В Linux вам нужно просто установить пакет qemu-guest-agent
.
Здесь мы покажем команды для систем на базе Debian/Ubuntu и Redhat:
В системах на Debian/Ubuntu выполняем следующие команды:
sudo apt install qemu-guest-agent
На системах на базе Redhat:
yum install qemu-guest-agent
На Windows VM
Сначала вы должны скачать драйвер virtio-win iso (см. Windows VirtIO Drivers).
Затем установите драйвер virtio-serial:
- Прикрепите ISO к виртуальной машине Windows (virtio-*.iso)
- Перейдите в Диспетчер устройств Windows
- Найдите «PCI Simple Communications Controller«
- Щелкните правой кнопкой мыши -> Обновить драйвер и выберите на смонтированном iso DRIVE:\vioserial\<OSVERSION>\ where <OSVERSION> is your Windows Version — ваша версия Windows (например, W7 для Windows 7)
После этого необходимо установить qemu-guest-agent:
- Перейти к смонтированному ISO в проводнике
- Установщик гостевого агента находится в каталоге гостевой агент
- Запустите установщик двойным щелчком (либо qemu-ga-x86_64.msi (64-разрядная версия), либо qemu-ga-i386.msi (32-разрядная версия)
После этого qemu-guest-agent должен быть запущен.
Если он не запущен, вы можете использовать панель управления Службами, чтобы запустить его и убедиться, что он запустится автоматически при следующей загрузке.

Настройка qemu-guest-agent в Linux
В зависимости от дистрибутива гостевой агент может не запускаться автоматически после установки. Для запуска воспользуемся следующими командами:
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
Проверка того, что связь с гостевым агентом работает
Связь с гостевым агентом происходит через сокет unix, расположенный в /var/run/qemu-server/<my_vmid>.qga
Вы можете проверить связь агента qm в proxmox:
qm agent <vmid> ping
если qemu-guest-agent правильно запущен в виртуальной машине, он выдаст пустое сообщения.
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо!!!
RSS
- Запускаем скрипт после запуска сети Ubuntu 22.04
- Как перезагрузиться при «Input / Output Error»
- Использование архиватора xz в Linux
- [РЕШЕНО] “cc_final_message.py [WARNING]”
- [РЕШЕНО] ошибка при обработке пакета grub-common
с какой версии прекращена поддержка windows7 ? какую версию qemu-guest-agent надо искать?
Здравствуйте.
Установил qemu-guest-agent для Windows 2012Но при запросе set-user-password пароль не меняется, выдается пустой result
Передаю вот такую дату на /nodes/$node/qemu/$vmid/agent/set-user-password
$data = [
«username»=>»Trader»,
«password»=>’123456789′
];
Что делаю не так ?
Здравствуйте. В консоле Proxmox наберите следующую команду:
qm guest passwd
Далее вводим ваш новый пароль два раза.
Пробуем зайти в ВМ Windows с новым паролем.
Я програмно хочу это сделать, пользуюсь бибилиотекой для php (https://github.com/Saleh7/ProxmoxVE_PHP_API)
Там есть функция qemuAgentSetUserPassword, вот только не знаю какие параметры передавать в $data, ни где не могу найти эту инфу
Разобрался, не хватало одного параметра
$data = [
«username»=>’Trader’,
«password»=>’1234567890′,
«crypted»=>false
];
Отлично. Наверное добавлю в статью по смене пароля для пользователей.