Dieser Artikel verwendet ConEmu, MSYS2 und Python2 sowie die Docker Toolbox, die unter Windows installiert ist. Bitte lesen Sie den Benutzernamen entsprechend.
Ist es der einfachste Weg, den Befehl ansible von einem Terminal unter Windows aus auszuführen? Ich habe versucht und versucht, hierher zu kommen, aber es hat nicht funktioniert. Immerhin fand ich, dass es am einfachsten war, Docker und Vagrant für jeden Zweck zu verwenden. Das Folgende ist eine Zusammenfassung der Ergebnisse von Versuch und Irrtum. Schreiben Sie abschließend auf, wie Sie die Rolle von Ansible mit Docker unter Windows wiederverwenden können.
Zunächst möchte ich Ansible als natives Windows-Programm installieren. MSYS2 startet die Shell mit MSYSTEM = mingw64. Die Installation erfolgte per Pip. Python2 und pip verwendeten diejenigen, die im mingw64-Repository veröffentlicht wurden. Unterwegs kann die Bibliothek beim Erstellen von Pycrypto oder Kryptografie unzureichend sein. In einem solchen Fall können Sie beim Festlegen von CFLAGS den Include-Pfad beim Kompilieren von gcc korrigieren.
Infolgedessen konnte ich es installieren. Sie haben eine native Windows-Binärdatei generiert. Als ich es ausführte, schlug es jedoch mit "ImportError: Kein Modul mit dem Namen fcntl" fehl.
Starten Sie dann die Shell mit MSYSTEM = msys. Python2 und pip verwendeten die im msys-Repository veröffentlichten. Als ich es versuchte, wurde es jedoch zu "ImportError: Kein Modul mit dem Namen fcntl" und es schlug erneut fehl.
Ich habe Python2 über das Windows-Installationsprogramm installiert und versucht, Ansible zu installieren. Zum Glück wurde der Windows-Compiler, den Python2 zum Erstellen verwendet, von Microsoft bereitgestellt.
Und Sie können Ansible brillant installieren. Als ich es versuchte, wurde es jedoch zu "ImportError: Kein Modul mit dem Namen fcntl" und es schlug erneut fehl.
$ /c/Python27/Scripts/ansible --version
Traceback (most recent call last):
File "C:/Python27/Scripts/ansible", line 45, in <module>
from ansible.utils.display import Display
File "C:\python27\lib\site-packages\ansible\utils\display.py", line 21, in <module>
import fcntl
ImportError: No module named fcntl
Danach habe ich versucht, Anaconda2 zu verwenden, aber es war unmöglich mit dem gleichen Fehler.
Ich denke, es gibt Provisioning als Nutzungsszene von Ansible. Vagrant stellt Ansible Provisioner als Bereitstellungsmethode zur Verfügung.
Verwenden Sie Ansible Local, da Ansible nicht unter Windows installiert wurde. Ich konnte es mit Ansible bereitstellen.
Ansible hat einen Ansible-Galaxie-Befehl. Es wird zum Zweck der Wiederverwendung von Rollen bereitgestellt, daher möchte ich Rollen erstellen. Unter Windows ist Ansible jedoch nur in der Bereitstellungsszene verfügbar.
Schließlich werde ich versuchen, die Rolle mit Docker wiederzuverwenden. Bereiten Sie die Verwendung des Docker-Befehls mit Docker Machine vor.
$ docker run --rm -v "//c/Users/<username>/ansible/roles:/etc/ansible/roles" ansible/ansible-container-builder:0.3 ansible-galaxy install geerlingguy.apache
Danach können Sie den Befehl ansible-galaxy für die Wiederverwendung von Rollen wie oben beschrieben verwenden. Die Docker-Nutzung scheint in anderen Szenen als der Bereitstellung am weitesten fortgeschritten zu sein.
Hier geht es darum, wie man Ansible unter Windows verwendet.
Bitte unterrichten Sie mich in diesem Fall, da es an Wissen über MSYS2 mangelt und es möglicherweise falsch ist. Es ist eine Entwicklung unter Windows, die oft stolpert, aber ich hoffe, sie hilft jemandem.
Recommended Posts