我使用Ansible的pip模块(Debian上的pip 7.1.2)从github安装Ansible:
- pip:
name: "git+https://github.com/ansible/ansible.git#egg=ansible"
state: latest
become: yes
然后在随后的运行中我收到消息:
致命:[ansibletarget]:失败了! => {“已更改”:false,“cmd”:“/ usr / local / bin / pip install -U -e git + https://github.com/ansible/ansible.git#egg=ansible”,“failed”:true,“msg”:“stdout:从git +获取ansible https://github.com/ansible/ansible.git#egg=ansible \ n正在更新./src/ansible clone \ n从命令git reset完成输出--hard -q origin / master:\ n \ n --------------- ------------------------- \ n \ n:stderr:无法找到标记或分支'origin / master',假定提交。\ nfatal :模糊参数'origin / master':未知的修订版或路径不在工作树中。\ n使用' - '将路径与修订版分开,如下所示:\ n'git [...] - [...] '\ n命令\“git reset --hard -q origin / master \”失败,错误代码128在/ tmp / src / ansible \ n“}”
在/tmp/src
我有一个ansible
子目录以及pip-delete-this-directory.txt
文件。 Pip不会删除它。
同样的行为(下载,未删除,后续调用错误)发生在:
pip install -U -e git+https://github.com/ansible/ansible.git#egg=ansible
基本上我希望我的剧本是幂等的。我可以在安装之前删除目标文件夹并解决问题,但是缺少什么,以便pip
不会删除内容,如其内容所示:
This file is placed here by pip to indicate the source was put
here by pip.
Once this package is successfully installed this source code will be
deleted (unless you remove this file).
答案 0 :(得分:0)
使用此设置很难实现幂等行为。您可以通过编写代码检查存储库的方法来解决该问题,如果存储库已经被检出,只需执行git pull origin master和一些pip工作即可。问题是您真的想要那个吗?
有一个专门用于获取Ansible打包版本的发行版本存储库,比尝试点安装它更适合这种情况。
Debian特定安装: