Comment obtenir/installer ansible avec Cygwin?
J'ai essayé les étapes suivantes mais cela n'a pas fonctionné à la puce 5 (en exécutant " python setup.py install "). Mesures prises à partir de: Tiré de https://servercheck.in/blog/running-ansible-within-windows
1) Téléchargez et installez Cygwin, avec au moins les packages suivants sélectionnés (vous pouvez sélectionner les packages au cours du processus d'installation):
libyaml
libyaml-devel
curl
python (2.7.x)
python-crypto
python-openssl
python-paramiko
python-setuptools
git (2.1.x)
vim
openssh
openssl
openssl-devel
2) Téléchargez et installez PyYAML et Jinja2, car ils ne sont pas disponibles via le programme d'installation de Cygwin:
1. Open Cygwin
2. Download PyYAML:
curl -O https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.10.tar.gz
3. Download Jinja2:
curl -O https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.6.tar.gz
4. Untar both downloads:
tar -xvf PyYAML-3.10.tar.gz && tar -xvf Jinja2-2.6.tar.gz
5. Change directory into each of the expanded folders and run python "python setup.py install" to install each package.
6. Clone ansible from its repository on GitHub:
git clone https://github.com/ansible/ansible /opt/ansible
This was tested with Ansible version v1.6.6, change directory into /opt/ansible and checkout the correct tag: git checkout v1.6.6.
7. Add the following lines into your Cygwin .bash_profile:
# Ansible settings
ANSIBLE=/opt/ansible
export PATH=$PATH:$ANSIBLE/bin
export PYTHONPATH=$ANSIBLE/lib
export ANSIBLE_LIBRARY=$ANSIBLE/library
8. At this point, you should be able to run ansible commands via Cygwin (once you restart, or enter source ~/.bash_profile to pick up the settings you just added).
Try ansible --version to display Ansible's version.
9. Passwordless ssh will need to be set up between your Windows machine and the deployment Host(s)
To enable passwordless ssh on Centos - ssh-copy-id root@node
To enable passwordless ssh on SuSE I followed the steps in this blog:
http://www.firedaemon.com/blog/passwordless-root-ssh-public-key-authentication-on-centos-6
install sshpass v1.05 on your Windows machine<br>
L'erreur que j'ai eu lors de la puce 5 est:
$ python setup.py install
running install
running build
running build_py
creating build
creating build/lib.cygwin-2.2.1-x86_64-2.7
creating build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/composer.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/constructor.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/cyaml.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/dumper.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/emitter.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/error.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/events.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/loader.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/nodes.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/parser.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/reader.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/representer.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/resolver.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/scanner.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/serializer.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/tokens.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
copying lib/yaml/__init__.py -> build/lib.cygwin-2.2.1-x86_64-2.7/yaml
running build_ext
creating build/temp.cygwin-2.2.1-x86_64-2.7
checking if libyaml is compilable
gcc -fno-strict-aliasing -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python/python-2.7.10-1.x86_64/build=/usr/src/debug/python-2.7.10-1 -fdebug-prefix-map=/usr/src/ports/python/python-2.7.10-1.x86_64/src/Python-2.7.10=/usr/src/debug/python-2.7.10-1 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/cygdrive/c/cygwin/include/python2.7 -c build/temp.cygwin-2.2.1-x86_64-2.7/check_libyaml.c -o build/temp.cygwin-2.2.1-x86_64-2.7/check_libyaml.o
checking if libyaml is linkable
gcc build/temp.cygwin-2.2.1-x86_64-2.7/check_libyaml.o -L/cygdrive/c/cygwin/lib/python2.7/config -L/usr/lib -lyaml -o build/temp.cygwin-2.2.1-x86_64-2.7/check_libyaml.exe
skipping 'ext/_yaml.c' Cython extension (up-to-date)
building '_yaml' extension
creating build/temp.cygwin-2.2.1-x86_64-2.7/ext
gcc -fno-strict-aliasing -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python/python-2.7.10-1.x86_64/build=/usr/src/debug/python-2.7.10-1 -fdebug-prefix-map=/usr/src/ports/python/python-2.7.10-1.x86_64/src/Python-2.7.10=/usr/src/debug/python-2.7.10-1 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/cygdrive/c/cygwin/include/python2.7 -c ext/_yaml.c -o build/temp.cygwin-2.2.1-x86_64-2.7/ext/_yaml.o
ext/_yaml.c:4:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'gcc' failed with exit status 1
.
$ ansible --version
Traceback (most recent call last):
File "/opt/ansible/bin/ansible", line 40, in <module>
from ansible.utils.display import Display
File "/opt/ansible/lib/ansible/utils/display.py", line 35, in <module>
from ansible import constants as C
File "/opt/ansible/lib/ansible/constants.py", line 30, in <module>
from ansible.parsing.splitter import unquote
File "/opt/ansible/lib/ansible/parsing/__init__.py", line 32, in <module>
from ansible.parsing.vault import VaultLib
File "/opt/ansible/lib/ansible/parsing/vault/__init__.py", line 82, in <module>
from cryptography.hazmat.primitives.hashes import SHA256 as c_SHA256
File "/cygdrive/c/cygwin/lib/python2.7/site-packages/cryptography/hazmat/primitives/hashes.py", line 15, in <module>
from cryptography.hazmat.backends.interfaces import HashBackend
File "/cygdrive/c/cygwin/lib/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 7, in <module>
import pkg_resources
File "/cygdrive/c/cygwin/lib/python2.7/site-packages/pkg_resources/__init__.py", line 84, in <module>
packaging = pkg_resources._vendor.packaging
AttributeError: 'module' object has no attribute '_vendor'
Beaucoup plus facile:
#!/bin/sh
type apt-cyg || exit
apt-cyg install git python-{jinja2,six,yaml}
git clone --depth 1 git://github.com/ansible/ansible
cd ansible
PATH+=:~+/bin
export PYTHONPATH=~+/lib
ansible --version
Résultat
ansible 2.0.0 (devel 2a50957ad8) last updated 2015/09/15 21:22:17 (GMT -500)
En supposant que Cygwin soit installé:
alias cyg-get="/path/to/cygwin/setup/package/setup-x86_64.exe -q -P"
cyg-get cygwin32-gcc-g++,gcc-core,gcc-g++,git,libffi-devel,nano,openssl,openssl-devel,python-crypto,python3,python3-devel,python3-openssl,python3-pip,python3-setuptools,python3-devel,tree,wget,Zip,make
pip
via pip3 install --upgrade pip
pip install ansible
Remarques:
L'alias cyg-get
vous permet d'installer tous les packages via la ligne de commande au lieu d'effectuer une recherche dans l'interface utilisateur de Cygwin.
L’installation d’ansible inclut une étape d’exécution de «L’exécution de setup.py bdist_wheel for pynacl» - elle prend au moins une demi-heure mais s’achève.
Vous devez aussi rebaser tous les paquetages pour résoudre le problème de forking, pour cela écrivez:
Après cela, vous pouvez utiliser ansible sans aucun problème (j'espère que vous aurez la même situation que moi, car cela fonctionne pour moi)
Il m'a fallu beaucoup de jours pour chercher et essayer de résoudre l'installation d'ansible sur Windows 10 Édition familiale
Bien que Ansible puisse fonctionner sous Cygwin, notez qu'il n'est pas officiellement pris en charge et que son son ne semble pas l'être dans un proche avenir.
Remarque: exécuter Ansible à partir d'une machine de contrôle Windows n'est PAS un objectif du projet. Abstenez-vous de demander cette fonctionnalité, car elle limite les technologies, fonctionnalités et codes que nous pourrons utiliser dans le projet principal à l'avenir. Une machine de contrôle Linux sera nécessaire pour gérer les hôtes Windows.
Cygwin n'est pas pris en charge. Par conséquent, ne posez pas de questions sur l'exécution d'Ansible à partir de Cygwin.
Tiré de la Documentation Ansible
Une alternative à envisager consiste à exécuter une machine virtuelle Linux sur votre hôte Windows et à l'utiliser comme contrôleur Ansible.
Essayez ceci avec apt-get remove python-cryptography, vous devrez peut-être également installer paramiko-1.10.0.tar.gz manuellement.
➤ ansible --version ansible 2.1.0
Cela a fonctionné pour moi:
~ $ cat setup_ansible_cygwin.sh
#!/bin/sh
echo binutils,curl,gcc-g++,git,gmp,libffi-devel,libgmp-devel,\
make,nano,openssh,openssl-devel,python-crypto,python-paramiko, \
python2,python2-devel,python2-openssl,python2-pip,python2-setuptools |\
tr ',' ' ' |\
xargs apt-cyg install
apt-cyg remove python2
apt-cyg install python2
pip2 install --upgrade pip
pip2 install ansible
# inside: Installing collected packages: MarkupSafe, jinja2, PyYAML, ansible
J'ai eu un problème avec "résoudre les liens symboliques" - je ne l'ai donc pas installé à partir de "pip install /path/absible.tar.gz", mais je l'ai décompressé (sous root = administrateur) dans un dossier et installé à partir d'un dossier, pas d'archivage. . Et - oh, ça marche - ansible a été installé sur cygwin.
Étapes pour Ansible 2.7.6 et Python3 et Cygwin 2.11.2 (0.329/5/3)
c:\cygwin64-setup>setup-x86_64.exe -q -P python3
$ python3 --version
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py
$ pip --version
c:\cygwin64-setup>setup-x86_64.exe -q -P make
c:\cygwin64-setup>setup-x86_64.exe -q -P gcc-g++
c:\cygwin64-setup>setup-x86_64.exe -q -P python3-devel
c:\cygwin64-setup>setup-x86_64.exe -q -P libffi-devel
c:\cygwin64-setup>setup-x86_64.exe -q -P openssl-devel
c:\cygwin64-setup>setup-x86_64.exe -q -P openssh
$ pip install ansible
$ ansible --version
% which ssh
/cygdrive/c/WINDOWS/System32/OpenSSH/ssh
Remarque: si cygwin n’est pas utilisé (comme ci-dessus), changez la variable d'environnement PATH pour cygwin ou changez les éléments de fichier d'hôtes hôtes d'inventaire avec l'indicateur ansible_ssh_executable=/usr/bin/ssh
.