Estoy intentando instalar Fedora CoreOS usando virt-install, como se describe aquí: https://docs.fedoraproject.org/en-US/fedora-coreos/getting-started/
El comando exacto que estoy ejecutando:virt-install --connect qemu:///system -n fcos -r 2048 --os-variant=fedora31 --import --graphics=none --disk size=10,backing_store=fedora-coreos-31.20200310.3.0-qemu.x86_64.qcow2 --qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=/home/test/Downloads/example.ign"
está devolviendo este error:
Allocating 'fcos.qcow2' | 10 GB 00:00:00
ERROR internal error: qemu unexpectedly closed the monitor: 2020-04-05T14:52:47.919380Z qemu-system-x86_64: -fw_cfg name=opt/com.coreos/config,file=/home/test/Downloads/example.ign: can't load /home/test/Downloads/example.ign
Removing disk 'fcos.qcow2' | 0 B 00:00:00
Domain installation does not appear to have been successful.
Estoy ejecutando este comando como root. El archivo de encendido funciona porque lo usé con éxito para implementar esta máquina virtual desde un archivo iso.
Respuesta1
Tuve el mismo problema; según el consejo de introducción, es posible que deba ejecutar el comando chcon.
Si ejecuta con SELinux habilitado, es posible que necesite cambiar la etiqueta del archivo de Ignition para permitir el acceso: chcon -t svirt_home_t ruta/a/ejemplo.ign
Respuesta2
Lo más probable es que sea un problema de AppArmor. Me encontré con el mismo problema, probé todas las soluciones posibles para los permisos de archivos, como setfacl -m u:libvirt-qemu:rx
y, chcon -t
pero terminó siendo una limitación del perfil de AppArmor:
Para resolver el problema, cambie /etc/apparmor.d/libvirt/TEMPLATE.qemu
para incluir la ruta a las configuraciones de encendido:
#
# This profile is for the domain whose UUID matches this file.
#
#include <tunables/global>
profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
#include <abstractions/libvirt-qemu>
/home/test/Downloads/example.ign rk,
/etc/ignition/**.ign rk,
}
Tenga en cuenta que agregué /etc/ignition/**.ign
glob como ejemplo si decide organizar todas las configuraciones de Ignition para sus máquinas virtuales en el futuro.
De esta manera podrá crear una máquina virtual CoreOS usando virt-install
.
Como opción, puede desactivar AppArmor para Qemu configurándolo, security_driver = "none"
pero /etc/libvirt/qemu.conf
diría que no se recomienda hacerlo.
Respuesta3
Independientemente de si ejecuta virt-install
como root, es probable que la máquina virtual iniciada por libvirt qemu:///system
esté utilizando el qemu
usuario. Ese qemu
usuario probablemente no tenga acceso de búsqueda+lectura a /home/test, por ejemplo. Mover el archivo a /tmp
lo arreglaría o abriría los permisos en toda la /home/test
ruta del archivo
Respuesta4
Usando versiones más recientes deadministrador-virtual(6.5) ylibvirt(3.0), ahora puedes usar
virt-install \
--sysinfo type=fwcfg,entry0.name=opt/com.coreos/config,entry0.file=${IGNITION_CONFIG} \
...
que se encargará de fijar correctamente las etiquetas en la lima de encendido.