我一直在编写一些 Ansible 脚本来设置 python virtualenv,并在开发过程中更新 python 包并重新启动服务器。尽管让 pip 更新软件包,但我遇到了问题。我真的不在乎这是如何完成的,但我更喜欢在开发过程中将路径添加到 virtualenv 中的 python 路径,然后重新启动服务器,但我还没有弄清楚如何在 Ansible 中做到这一点。
所以我的问题是如何设置一个本地 git 存储库,该存储库可以安装到 virtualenv 的站点包中,也可以设置 Ansible 到 sys.path.insert 使用正确的 virtualenv 存储库的位置。
目前我正在尝试做:
sudo pip install ~/workspace/python-repo
在安装软件包之前,我将我从 Authenticator 中获得的一个类重命名为像 Authen 这样完全错误的东西。该类在全新安装期间显示 Authen。然后我将类名改回正确的名称(Authenticator),修改版本并运行
sudo pip install ~/workspace/python-repo --upgrade
但是在检查站点包中的实际文件后,它仍然显示 Authen 名称而不是更新的文件。
我怎样才能做到这一点,以便在开发期间使用本地存储库并在我的环境中获取即时更新的文件?以及通过 Ansible 使其成为可重复的过程。
这是我在 Ansible 中尝试做的事情。我的第一个游戏是设置我只想运行一次的环境。
- name: Install python-repo
local_action: pip name=${python_root}
virtualenv=${working_dir}/development
${python_root} 只是我的 python 项目的位置,当然工作目录是新的 virtualenv 设置。
然后不知何故,我想要一个开发游戏来更新 virtualenv 中的 python 存储库。这是我到目前为止所拥有的,但这也不起作用。
- name: Update python-repo
local_action: pip name=${python_root}
virtualenv=${working_dir}/development
state=latest
- name: Restart services.
local_action: service name=${item} state=restarted
with_items: ${services}