qemu-guest-agent es un agente que puede instalarse en los sistemas invitados en Proxmox VE que permite obtener información sobre los sistemas corriendo en máquinas virtuales. Uno de esos datos es la IP del sistema.

Sin embargo, para los sistemas Alpine Linux, el servicio no arranca automáticamente. Se puede habilitar de forma manual, pero lo ideal es que el demonio arranque automáticamente durante el arranque.

Se puede configurar qemu-guest-agent para que arranque durante el inicio del sistema mediante rc-update:

rc-update add qemu-guest-agent default

Sin embargo, tras reiniciar el equipo, el servicio crashea; consultando los logs observamos:

# cat /var/log/messages | grep -i qemu-guest-agent
Apr 28 22:24:05 dns daemon.err /etc/init.d/qemu-guest-agent[2440]: status: crashed
Apr 28 22:24:10 dns daemon.err /etc/init.d/qemu-guest-agent[2460]: start-stop-daemon: no matching processes found

Bug de qemu-guest-agent en Alpine Linux

Buscando información en Google sobre el problema de qemu-guest-agent en Alpine Linux, he encontrado el Bug #8894 Qemu-Guest-Agent not working.

El problema parece estar en la configuración del script de arranque del servicio es incorrecta; se apunta la solución en los comentarios del bug: modificar el script especificando el dispositivo real (/dev/vport2p1) y no el “configurado” en el script del servicio (-p ${GA_PATH:-/dev/virtio-ports/org.qemu.guest_agent.0}).

El script que permite arrancar el servicio automáticamente queda:

# cat /etc/init.d/qemu-guest-agent
#!/sbin/openrc-run

name="QEMU Guest Agent"
pidfile="/run/qemu-ga.pid"
command="/usr/bin/qemu-ga"
command_args="-m ${GA_METHOD:-virtio-serial} -p qemu-ga -p /dev/vport2p1 -l /var/log/qemu-ga.log -d"

Tras corregirlo, configuramos qemu-guest-agent para que arranque durante el inicio del sistema:

rc-update add qemu-guest-agent default

Para validar que todo funciona como esperamos, reiniciamos el equipo y comprobamos el estado del servicio:

# service qemu-guest-agent status
 * status: started