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

时间:2015-04-09 11:44:18

标签: ubuntu vagrant ansible vagrantfile

任何人都可以告诉如何在一台Ubuntu笔记本电脑上安装两个或更多的ansible版本吗?

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

  • 将1.9写入meta/main.yml
  • 用手指交叉写入meta/main.yml较低版本

我在ansible docs发现了下一条评论:

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

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

另外,我还没有找到如何在Vagrantfile中指定ansible版本,所以我必须在我的机器上安装合适的版本?

谢谢。

3 个答案:

答案 0 :(得分:3)

我在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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

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

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

对于你提出的建议,你要做的就是在不同的目录中安装不同版本的ansible,然后使用模块修改你的PATH,PYTHONPATH和/或ANSIBLE_LIBRARY环境变量,方法与{{1}相同。脚本没有。