web-dev-qa-db-fra.com

Cygwin - Comment installer ansible?

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'
9
Arun Sangal

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)
16
Steven Penny

En supposant que Cygwin soit installé:

  • Ouvrir un terminal Cygwin
  • 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
  • Le manque d'espaces et la présence de virgules sont importants!
  • Mettre à niveau 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.

7
Bonnie


    1. télécharger cygwin
    2. sur la page "Sélectionner les paquets", sélectionnez "Catégorie" dans la vue (en haut à gauche)
    3. marquer "Devel" en "Installer" (vous changerez le "Par défaut" en "Installer"
    4. marquer "Python" sur "Installer"
    5. à partir de "Web", sélectionnez "wget"
    6. à partir de "Net", sélectionnez "Openssh"
    7. progrès pour installer les paquets avec "Suivant"
    8. allez dans le dossier de destination où vous avez installé cygwin
    9. clic droit "Cygwin.bat" et exécuter en tant qu'administrateur
    dix. écrire "easy_install-2.7 pip"
    11. écrire "pip2 install ansible"


Vous devez aussi rebaser tous les paquetages pour résoudre le problème de forking, pour cela écrivez:

  1. rebase-trigger complet
  2. fermez les coquilles Cygwin (ou même redémarrez vos fenêtres)
  3. exécutez à nouveau le programme d'installation Cygwin et cliquez simplement sur "Suivant" jusqu'à la fin de l'installation. Cygwin rebase alors tous les packages.

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

3
Arkan

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.

3
Steve E.

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

1
Deepak Tom

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
0
tejot7

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.

0
Antispam Antispam

Étapes pour Ansible 2.7.6 et Python3 et Cygwin 2.11.2 (0.329/5/3)

  1. Faire installer Cygwin
  2. Installez python3
c:\cygwin64-setup>setup-x86_64.exe -q -P python3
$ python3 --version
  1. Installer le pip
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py
$ pip --version
  1. Installer les outils de développement (pour Ansible)
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
  1. Installer ansible
$ pip install ansible
$ ansible --version
  1. Vérifiez quel SSH est utilisé ( https://serverfault.com/a/913435 )
% 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.

0
bedla.czech