Eva*_*kas 16 python pip ansible
我正在努力在我的Windows 10机器上安装Ansible Python软件包.
我不需要Ansible在我的机器上运行,这纯粹是为了我的Windows主机上的开发目的.稍后将在Linux计算机上发出所有命令.
运行后:
pip install ansible
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
命令"c:\ users\evaldas.buinauskas\appdata\local\programs\python\python37-32\python.exe -u -c"import setuptools,tokenize; __ file __ ='C:\ Users\evaldas.buinauskas\AppData\Local\Temp\pip-install-hpay_le9\_ ansible\setup.py'; f = getattr(tokenize,'open',open)(__ file __); code = f.read().replace('\ r \n', '\n'); f.close(); exec(compile(code,__ file __,'exec'))"install --record C:\ Users\evaldas.buinauskas\AppData\Local\Temp\pip-record-dvfgngpp\install-record.txt --single-version-external-managed --compile"失败,错误代码1在C:\ Users\evaldas.buinauskas\AppData\Local\Temp\pip-install-hpay_le9\ansible \
还有一个重复的例外,我认为是根本原因:
错误:无法复制'lib\ansible\module_utils\ansible_release.py':不存在或不存在常规文件
这个GitHub问题说应该可以安装,而不是运行它.这基本上就是我真正需要的.
我试图运行CMD/PowerShell中/ Cygwin的作为管理员,并没有帮助.
此外,还有一个答案告诉如何在Windows上安装它:如何克服 - 在windows上使用文件名或扩展名失败的pip install ansible太长了
但我真的不明白如何获得Ansible包的wheel文件.
小智 9
在Windows上安装Ansible很麻烦.我的建议不是如何在Windows上安装Ansible的直接解决方案,而是一种解决方法.
我使用带Ansible的Docker容器在我的Windows机器上开发playbooks.你的机器上需要Docker for Windows.
这是Dockerfile:
FROM alpine:3.7
ENV ANSIBLE_VERSION=2.5.4
ENV BUILD_PACKAGES \
bash \
curl \
tar \
nano \
openssh-client \
sshpass \
git \
python \
py-boto \
py-dateutil \
py-httplib2 \
py-jinja2 \
py-paramiko \
py-pip \
py-setuptools \
py-yaml \
ca-certificates
RUN apk --update add --virtual build-dependencies \
gcc \
musl-dev \
libffi-dev \
openssl-dev \
python-dev && \
set -x && \
apk update && apk upgrade && \
apk add --no-cache ${BUILD_PACKAGES} && \
pip install --upgrade pip && \
pip install python-keyczar docker-py boto3 botocore && \
apk del build-dependencies && \
rm -rf /var/cache/apk/* && \
mkdir -p /etc/ansible/ /ansible && \
echo "[local]" >> /etc/ansible/hosts && \
echo "localhost" >> /etc/ansible/hosts && \
curl -fsSL https://releases.ansible.com/ansible/ansible-${ANSIBLE_VERSION}.tar.gz -o ansible.tar.gz && \
tar -xzf ansible.tar.gz -C /ansible --strip-components 1 && \
rm -fr ansible.tar.gz /ansible/docs /ansible/examples /ansible/packaging
ENV ANSIBLE_GATHERING=smart \
ANSIBLE_HOST_KEY_CHECKING=false \
ANSIBLE_RETRY_FILES_ENABLED=false \
ANSIBLE_ROLES_PATH=/ansible/playbooks/roles \
ANSIBLE_SSH_PIPELINING=True \
PYTHONPATH=/ansible/lib \
PATH=/ansible/bin:$PATH \
ANSIBLE_LIBRARY=/ansible/library \
EDITOR=nano
WORKDIR /ansible/playbooks
ENTRYPOINT ["ansible-playbook"]
Run Code Online (Sandbox Code Playgroud)
使用该docker build命令构建docker容器.然后,您可以创建一个执行docker run命令的小bash脚本,并将当前目录安装到容器中.你可以称之为ansible-playbook.sh:
winpty docker run --rm -it -v /$(pwd):/ansible/playbooks <name of your container> $@
Run Code Online (Sandbox Code Playgroud)
现在,您将能够./ansible-playbook.sh <your playbook>在GIT BASH中启动Ansible playbook .如果你想在PowerShell中运行它,你可能需要删除winpty命令,但我还没有在PS中测试它.
它不是最好的解决方案,但它完成了工作.希望它也能帮到你.
我已经通过以下步骤(在 powershell 中运行)设法在 Windows 10 上安装了 ansible :
您可能还需要创建一个符号链接,但是,这不是必需的:
New-Item -ItemType SymbolicLink -Name ansible_release.py -Target .\lib\ansible\release.py
Ansible 将在某种程度上无法用于开发,因为它使用了一些仅限 Unix 的模块,例如grp或pwd。例如,您将无法运行单元测试(例如module_utils/basic.py导入 grp 和 pwd)。将 grp.py 下载到site-packages文件夹无济于事。
为了获得更流畅的体验,我建议安装 WSL(Linux 的 Windows 子系统)并使用 pip 安装 python,然后运行pip install ansible。以下是在 Visual Studio Code 中使用 WSL 进行开发的方法
| 归档时间: |
|
| 查看次数: |
6664 次 |
| 最近记录: |