Logo Virt Manager

El objetivo es poder ejecutar virt-manager desde mi Mac para administrar las VM’s de un par de servidores anfitriones KVM/QEMU remotos sin necesidad de instalarles un entorno X11. He documentado dos opciones, la primera es mediante máquina virtual local (Virtualbox/Parallels/…) con un ubuntu y entorno mínimo GUI (solo Xorg/X11 y virt-manager), la segunda es mediante HomeBrew.


Opción Máquina Virtual

Tengo Parallels como software de Virtualización pero debe funcionar exactamente igual con VirtualBox o cualquier otro virtualizador en tu Mac.

Instalación de VM con Ubuntu
  • Creo una VM con Ubuntu Server 20.04 LTS: ubuntu-20.04.3-live-server-amd64.iso
  • Instalo las Parallel Tools (opciónal)
  • Red compartida, me asignará una IP automáticamente del rango privado.
Configuración de red desde Parallels
  • Parallels crea una entrada en el /etc/hosts con el nombre de la máquina virtual y su IP. Compruebo que funciona y de paso quito el motd (Mensaje del Día) del ubuntu
luis@macos:~$ ssh -p 22 ubuntu-linux
: 
luis@ubuntu:~$ touch $HOME/.hushlogin
  • Preparo el entorno mínimo Xorg/X11 (más info):
luis@ubuntu:~$ sudo apt install xauth
:
luis@ubuntu:~$ sudo apt install virt-manager ssh-askpass-gnome --no-install-recommends

luis@ubuntu:~$ sudo apt install -y spice-client-gtk

 virt-manager                   libvirtd
 host:ubuntu                    host:tierra
+-------------+               +--------------+
| luis@ubuntu | ---- ssh ---> | luis@tierra  |
+-------------+               +--------------+
  • Configuro el cliente SSH en ubuntu. En mi caso el servidor tierra exige autenticar vía clave pública.
luis@ubuntu $ ssh-keygen -t rsa -b 2048
  • En el servidor @tierra añado el usuario al grupo libvirt
root@tierra # cat /etc/group
:
libvirt:x:116:luis
  • Compruebo…
luis@macos:$ ssh -Y -a luis@ubuntu-linux
:
luis@ubuntu:~$ ssh tierra
Enter passphrase for key '/home/luis/.ssh/id_rsa':

luis@tierra:~$
luis@tierra:~$ id
uid=1000(luis) gid=1000(luis) grupos=1000(luis),4(adm),24(cdrom),27(sudo),116(libvirtd)

Conexión desde virt-manager en máquina virtual

luis@macos:$ ssh -Y -a -p 22 luis@ubuntu-linux
:
luis@ubuntu:~$ virt-manager
  • Archivo > Añadir conexión
    • Hypervisor: QEMU/KVM
    • (x) Xonectar a anfitrión remoto mediante SSH
    • Nombre de usuario: luis
    • Nombre de equipo: tierra.tudominio.com
    • Autoconectar: (X)
    • URI generado: qemu+ssh://luis@tierra…
Configuración de conexión remota SSH
Gestor virt-manager
  • Conexión desde línea de comandos

También tienes la opción de conectar directamente desde la línea de comandos o si tienes tu servidor remoto escuchando por otro puerto para SSH, cambia XXXXX por el puerto.

luis@ubuntu$ virt-manager -c 'qemu+ssh://luis@tierra.tudominio.com/system?keyfile=id_rsa'

luis@ubuntu$ virt-manager -c 'qemu+ssh://luis@tierra.tudominio.com:XXXXX/system?keyfile=id_rsa'


Opción HomeBrew

  • Virt-manager no está disponible en HomeBrew, existe una fórmula personalizada que permite instalarlo pero está obsoleta y falla. Gracias a este Issues/184 y múltiples forks he encontrado el de Damenly, que tiene buena pinta. Ojo, es super simple, solo instala virt-manager, no instala libvirt ni soporta ciertas dependencias (como por ejemplo la contraeña de ssh, leer el README).
  • He tenido algún que otro problema al instalarlo y lo desinstalé, lo dejo aquí para hacer seguimiento a este proyecto.
    brew tap Damenly/homebrew-virt-manager
    brew install virt-manager --HEAD
    brew install virt-viewer
    
  • Una vez instalado ejecutamos:
    export XDG_DATA_DIRS="/opt/homebrew/share/".
    virt-manager -c test:///default