Ich versuche, Fedora CoreOS mit virt-install zu installieren, wie hier beschrieben: https://docs.fedoraproject.org/en-US/fedora-coreos/getting-started/
Der genaue Befehl, den ich ausführe: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"
gibt diesen Fehler zurück:
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.
Ich führe diesen Befehl als Root aus. Die Ignition-Datei funktioniert, da ich sie erfolgreich zum Bereitstellen dieser VM aus einer ISO-Datei verwendet habe.
Antwort1
Ich hatte das gleiche Problem. Laut dem Tipp für die ersten Schritte müssen Sie möglicherweise den Befehl chcon ausführen.
Wenn Sie mit aktiviertem SELinux arbeiten, müssen Sie möglicherweise die Bezeichnung der Ignition-Datei ändern, um den Zugriff zu ermöglichen: chcon -t svirt_home_t Pfad/zu/example.ign
Antwort2
Höchstwahrscheinlich handelt es sich um ein AppArmor-Problem. Ich bin auf dasselbe Problem gestoßen und habe alle möglichen Workarounds für Dateiberechtigungen wie setfacl -m u:libvirt-qemu:rx
und ausprobiert chcon -t
, aber letztendlich stellte sich heraus, dass es sich um eine Einschränkung des AppArmor-Profils handelte:
Um das Problem zu beheben, ändern Sie es so, /etc/apparmor.d/libvirt/TEMPLATE.qemu
dass der Pfad zu den Zündkonfigurationen miteinbezogen wird:
#
# 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,
}
Beachten Sie, dass ich /etc/ignition/**.ign
Glob als Beispiel hinzugefügt habe, falls Sie in Zukunft alle Ignition-Konfigurationen für Ihre VMs organisieren möchten.
Auf diese Weise können Sie eine CoreOS-VM erstellen virt-install
.
Optional können Sie AppArmor für Qemu durch die Einstellung deaktivieren, security_driver = "none"
aber /etc/libvirt/qemu.conf
ich würde sagen, davon wird dringend abgeraten.
Antwort3
Unabhängig davon, ob Sie als Root ausführen , verwendet virt-install
die von libvirt gestartete VM wahrscheinlich den Benutzer. Dieser Benutzer hat wahrscheinlich keinen Such- und Lesezugriff auf /home/test. Das Verschieben der Datei dorthin würde das Problem beheben oder die Berechtigungen für den gesamten Dateipfad öffnen.qemu:///system
qemu
qemu
/tmp
/home/test
Antwort4
Durch den Einsatz neuerer Versionen vonvirtueller Manager(6.5) undlibvirt(3.0) können Sie nun
virt-install \
--sysinfo type=fwcfg,entry0.name=opt/com.coreos/config,entry0.file=${IGNITION_CONFIG} \
...
Dadurch wird sichergestellt, dass die Beschriftungen in der Zünddatei richtig festgelegt werden.