Cet article utilise ConEmu, MSYS2 et Python2 et Docker Toolbox installés sur Windows. Veuillez lire le nom d'utilisateur comme il convient.
Est-ce le moyen le plus simple d'exécuter la commande ansible à partir d'un terminal sous Windows? J'ai essayé et essayé d'arriver ici, mais cela n'a pas fonctionné. Après tout, j'ai trouvé qu'il était plus facile d'utiliser Docker et Vagrant pour chaque objectif. Ce qui suit est un résumé des résultats d'essais et d'erreurs. Enfin, notez comment réutiliser le rôle d'Ansible à l'aide de Docker sous Windows.
Tout d'abord, je voudrais installer Ansible en tant que programme natif Windows. MSYS2 lance le shell avec MSYSTEM = mingw64. L'installation a été effectuée via pip. Python2 et pip utilisaient ceux publiés dans le référentiel mingw64. Sur le chemin, la bibliothèque peut être insuffisante lors de la construction de pycrypto ou de cryptographie. Dans ce cas, si vous définissez CFLAGS, vous pouvez corriger le chemin d'inclusion lors de la compilation de gcc.
En conséquence, j'ai réussi à l'installer. Vous avez généré un binaire natif Windows. Cependant, quand je l'ai essayé, il a échoué avec ʻImportError: Aucun module nommé fcntl`.
Puis démarrez le shell avec MSYSTEM = msys. Python2 et pip ont utilisé ceux publiés dans le référentiel msys. Cependant, quand je l'ai essayé, il est devenu ʻImportError: Aucun module nommé fcntl` et il a échoué à nouveau.
J'ai installé Python2 à partir du programme d'installation de Windows et j'ai essayé d'installer Ansible. Heureusement, le compilateur Windows que Python2 utilise pour construire était fourni par Microsoft.
Et vous pouvez installer Ansible avec brio. Cependant, quand je l'ai essayé, il est devenu ʻImportError: Aucun module nommé fcntl` et il a échoué à nouveau.
$ /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
Après cela, j'ai essayé d'utiliser Anaconda2, mais c'était impossible avec la même erreur.
Je pense que l'approvisionnement est une scène d'utilisation d'Ansible. Vagrant fournit Ansible Provisioner comme méthode de provisionnement.
Étant donné qu'Ansible n'a pas été installé sur Windows, utilisez Ansible Local. J'ai pu l'approvisionner avec Ansible.
Ansible a une commande ansible-galaxy. Il est fourni dans le but de réutiliser des rôles, je souhaite donc créer des rôles. Cependant, sous Windows, Ansible n'est disponible que dans la scène de provisionnement.
Enfin, je vais essayer la méthode de réutilisation de Role en utilisant Docker. Préparez-vous à utiliser la commande docker à l'aide de Docker Machine.
$ docker run --rm -v "//c/Users/<username>/ansible/roles:/etc/ansible/roles" ansible/ansible-container-builder:0.3 ansible-galaxy install geerlingguy.apache
Après cela, vous pouvez utiliser la commande ansible-galaxy pour la réutilisation des rôles comme ci-dessus. L'utilisation de Docker semble être la plus avancée dans les scènes autres que l'approvisionnement.
C'est tout sur la façon d'utiliser Ansible sur Windows.
S'il vous plaît, apprenez-moi dans ce cas car il y a un manque de connaissances sur MSYS2 et cela peut être faux. C'est un développement sur Windows qui trébuche souvent, mais j'espère que cela aide quelqu'un.
Recommended Posts