Linux OSBN/Ubuntuusers Planet Windows

Kurztipp: WSL + Ansible = „Failed to create temporary directory“

Beim Benutzen von Ansible unter WSL (Windows Subsystem for Linux) bin ich neulich auf den folgenden Fehler gestoßen:

Failed to create temporary directory.
In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rootet in "/tmp", for more error information use -vvv.

In diesem Fall wurde Ubuntu 20.04 benutzt, der Fehler kann aber auch bei anderen Distributionen bzw. Versionen auftreten.

Der Hintergrund des Fehlers ist, dass Ubuntu eine nicht mit WSL kompatible Version der GNU C-Bibliothek (glibc) ausliefert. Das kann man wie folgt überprüfen:

$ sleep 1337
sleep: cannot read realtime clock: Invalid argument

Ansible nutzt für einige Ressourcen den sleep-Aufruf – auch, wenn man keine Pausen einbaut.

Als Workaround kann man das des sleep-Kommando auf beispielsweise /bin/true verlinken. In diesem Fall funktionieren allerdings keine Pausen mehr:

# mv /usr/bin/sleep /usr/bin/sleep.orig
# ln -s /bin/true /usr/bin/sleep

Hoffentlich gibt es bald einen dauerhaften Fix für das Problem. Eine aktive Diskussion zum Thema gibt es hier.

Hier ist auch vermerkt, dass Ubuntu 18.04 nicht von dem Problem betroffen ist. Auch gibt es schon einen Patch in der Entwicklerversion von WSL.

Sharing is caring

1 Kommentar Neuen Kommentar hinzufügen

  1. Jens sagt:

    Ich weiß nicht, warum die Leute alle Ubuntu verwenden, wo doch WSL noch gar keine grafische Benutzeroberfläche ausführen kann und alles, was auf der Kommandozeile gemacht werden kann, auch schon in Debian enthalten ist. Aber das nur nebenbei 😉

    Jedenfalls ist Debian unter WSL1 vom beschriebenen Bug nicht betroffen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.