Как подключить 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
- Как запустить команду в фоне в Linux
- Ошибка несоответствие размеров GPT PMBR
- nginx: [warn] protocol options redefined
- Как включить поддержку linux в windows 11
- Запускаем скрипт после запуска сети Ubuntu 22.04
Почему-то при попытке включить появляется такое сообщение: root@rever:# systemctl enable qemu-guest-agent Synchronizing state of qemu-guest-agent.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable qemu-guest-agent The unit files have no installation config (WantedBy=, RequiredBy=, Also=, Alias= settings in the [Install] section, and DefaultInstance= for template units). This means they are… Подробнее »
Агент устанавливается не на сервер, а на ВМ
Именно в виртуальной машине он установлен. А в гипервизоре он включён в меню виртуальной машины в графическом интерфейсе.
После команды systemctl start qemu-gest-agent он запускается и работает. А после перезагрузки вм не запускается автоматически.
Но при попытке включить через systemctl enable появляется вышеназванная ошибка.
Что нужно проверить, чтобы исправить это?
systemctl не запускает агент. Попробуй
service start qemu-guest-agent
systemctl запускает всё-таки сервис. Просто автозапуск при загрузке операционной системы почему-то не работает. Буду искать причину. service qemu-guest-agent start тоже запускает сервис нормально. andr@dean:~$ sudo systemctl start qemu-guest-agent andrey@deanonym:~$ sudo systemctl status qemu-guest-agent ● qemu-guest-agent.service – QEMU Guest Agent Loaded: loaded (/lib/systemd/system/qemu-guest-agent.service; static; vendor preset: enabled) Active: active (running) since… Подробнее »
А такую команду побывали
systemctl enable --now qemu-guest-agent
Добрый день. А для Ubuntu нужен этот агент, или все работает из коробки? На Винде у меня до установки агента не работали команды на выключение ВМ и резервное копирование в режиме Остановка
Да нужен
с какой версии прекращена поддержка windows7 ? какую версию qemu-guest-agent надо искать?
Для windows 7, последние драйвера с агентом, которые подходят virtio-win-0.1.173.iso
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.173-9/virtio-win-0.1.173.iso
Здравствуйте.
Установил 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
];
Отлично. Наверное добавлю в статью по смене пароля для пользователей.