如何使用Cygwin获取/安装ansible?
我尝试了以下步骤,但是在项目符号5(运行“ python setup.py install”时)不起作用。从执行的步骤:从https://servercheck.in/blog/running-ansible-within-windows开始>
1)下载并安装Cygwin,并至少选择以下软件包(您可以在安装过程中选择软件包):
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)下载并安装PyYAML和Jinja2,因为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>
我在项目符号5期间遇到的错误是:
$ 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'
如何使用Cygwin获取/安装Ansible?我尝试了以下步骤,但在项目符号5(运行“ python setup.py install”时)中不起作用。采取的步骤:取自https:// servercheck ....
容易得多:
假设已安装Cygwin:
尽管Ansible可以在Cygwin中使用,但请注意,它并没有得到官方的支持,而且听起来似乎不会在不久的将来出现。
尝试使用此apt-get删除python-cryptography,也可能需要手动安装paramiko-1.10.0.tar.gz。
我在“解析符号链接”时遇到问题-所以我不能从“ pip install /path/absible.tar.gz”安装它但是我将其解压缩(在root =管理员下)到文件夹,并从文件夹而不是存档安装。而且-哦,它有效-cygwin已安装ansible。
这对我有用:
Ansible 2.7.6和Python3和Cygwin 2.11.2(0.329 / 5/3)的步骤
使用更高版本的安装程序https://cygwin.com/setup-x86_64.exe,您可以直接安装ansible和ansible-doc