同一台笔记本电脑上的多个 ansible 版本

Multiple ansible versions on same laptop

谁能告诉我如何在一台 Ubuntu 笔记本电脑上安装两个或多个 ansible 版本?

当我在 galaxy.ansible.com 中发布我的角色时,我想在 meta/main.yml 中设置最低要求版本。但是现在我的机器上有ansible 1.9,所以进退两难:

我在 ansible 文档中找到了下一条评论:

Debian/Ubuntu packages can also be built from the source checkout, run:
$ make deb

所以我可以编译 1.4, 1.5 来测试。 但我希望能够快速 select 使用哪个版本 - 1.4 和 1.5 用于测试,1.8 用于正常日常使用。

此外,我没有在 Vagrantfile 中找到如何指定 ansible 版本,所以我必须在我的机器上安装正确版本的 ansible 吗?

谢谢。

我在 http://www.cyberciti.biz/python-tutorials/linux-tutorial-install-ansible-configuration-management-and-it-automation-tool/ 找到了解决方案。

经过一些修改即可完全正常工作示例:

cd /tmp
git clone -b v1.4.0 --recursive https://github.com/ansible/ansible.git v1.4.0
source ./v1.4.0/hacking/env-setup
ansible --version # will print ansible 1.4

当我在一所大学管理一个研究集群时,我们使用 this modules utility 来管理几十个不同的软件应用程序(其中一些我们有三四个不同的版本)。

简而言之,这个模块工具的工作方式是为每个 program/application 创建配置文件,然后使用命令“module load XXX”或“module unload XXX”来切换环境.例如,我们安装了 python 的多个版本,用户可以通过发出命令“module load python/2.4”或“module load python/2.6”登录到集群后加载特定版本。

配置文件可以非常简单,只是将值附加到您的 PATH,或者更复杂,带有条件,强制加载或卸载其他模块等。这些模块文件的文档可以是 found here.

对于你的提议,你要做的就是在不同的目录下安装不同版本的ansible,然后使用modules修改你的PATH,PYTHONPATH,and/or ANSIBLE_LIBRARY环境变量与 ansible/hacking/env-setup 脚本的方式相同。

您可以 sudo pip install ansible==1.8.4 在一个 python virtualenv 和 pip 安装另一个版本 ansible==1.9.0.1 在不同的虚拟环境中。多个 virtualenvs 也可以基于相同的 python 版本。

另一个完全不同的解决方案是在 docker 容器中安装 ansible。 Here is nice centos image with ansible already installed in it. 还有 ubuntu 和 debian 镜像。