Fehlerbehebung
Diese Seite sammelt seltene, hostspezifische Probleme, die die meisten Sailwright-Setups nicht betreffen.
Windows: Cygwin-Ansible wird von einer Host-Installation überdeckt
Abschnitt betitelt „Windows: Cygwin-Ansible wird von einer Host-Installation überdeckt“Unter Windows mit Cygwin kann die Ansible-Installation innerhalb von Cygwin von einer anderen Python- oder Ansible-Installation des Windows-Hosts überdeckt werden.
In diesem Fall gehen Sie wie folgt vor:
- Installieren Sie Ansible nicht direkt auf dem Windows-Host.
- Entfernen Sie konkurrierende Ansible-Installationen auf Host-Ebene.
- Installieren und starten Sie Ansible stattdessen über die Cygwin-Python-Umgebung.
macOS: Absturz durch Fork-Safety bei Ansible
Abschnitt betitelt „macOS: Absturz durch Fork-Safety bei Ansible“Beim Ausführen von Ansible unter macOS kann ein Fork-Safety-Absturz auftreten, der etwa so aussieht:
TASK [Gathering Facts] ***************************************************************************************************************************************objc[9473]: +[NSNumber initialize] may have been in progress in another thread when fork() was called.objc[9473]: +[NSNumber initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.ERROR! A worker was found in a dead stateAls Workaround setzen Sie vor dem Start von Ansible diese Umgebungsvariable:
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YESLinux: virsh domifaddr liefert keine IP-Adresse
Abschnitt betitelt „Linux: virsh domifaddr liefert keine IP-Adresse“Das Linux-libvirt-Provisioning wartet darauf, dass virsh domifaddr eine IPv4-Adresse des Gasts meldet. Sailwright prüft zuerst den Gast-Agent und danach die DHCP-Leases von libvirt. Liefern beide Quellen keine Adresse, kann das Provisioning das temporäre Ansible-Inventory nicht aufbauen.
Vergewissern Sie sich zunächst, dass die VM läuft, und fragen Sie dieselbe libvirt-Verbindung ab, die Sailwright verwendet:
virsh --connect qemu:///system domifaddr <domain> --source agentvirsh --connect qemu:///system domifaddr <domain> --source leaseIst die Abfrage über den Agent leer, warten Sie, bis der Gast vollständig gestartet ist, und stellen Sie sicher, dass im Image qemu-guest-agent installiert ist und läuft. Ist die Abfrage der Leases leer, stellen Sie sicher, dass die VM an ein von libvirt verwaltetes Netzwerk mit sichtbaren DHCP-Leases angebunden ist:
virsh --connect qemu:///system net-info defaultvirsh --connect qemu:///system net-dhcp-leases defaultExistiert das Netzwerk default, ist aber inaktiv, aktivieren Sie es:
sudo virsh --connect qemu:///system net-start defaultsudo virsh --connect qemu:///system net-autostart defaultFühren Sie bei DEV_ALCHEMY_LIBVIRT_URI=qemu:///session dieselben Prüfungen gegen qemu:///session aus. VMs in einer Session nutzen standardmäßig das User-Mode-Networking von libvirt. Daher ist die Sichtbarkeit über den Gast-Agent meist die zuverlässigste Quelle für die IP-Adresse.