因为ansible本身由python编写而成, 所以我们可以使用python下的virtualenv模块对我们所需的ansible发行版进行隔离安装, 这样既能保证我们原有的job还可以正常在stable version下safe running, 而且又不影响我们new job在新版本下适配新的模块.
一.安装virtualenv
1.保证系统默认YUM源
2.安装easy_install
# whoami
root
# yum install python-setuptools python-setuptools-devel
3.安装pip
# easy_install pip
4.安装virtualenv
# pip install virtualenv
二.配置系统非root用户使用新版本ansible.
Tip: 我们正常部署过程中建议使用一个普通用户来跑我们日常的ansible job
1.创建用户
# useradd deploy
2.切换到该用户进行初始配置.
# su - deploy
##创建virtualenv 隔离环境,环境名 : .virtualenv (可以自定义名称)
$ virtualenv .virtualenv
$ cd .virtualenv
$ ls
bin include lib lib64 pip-selfcheck.json
3.使用git下载ansible最新发行版.
$ git clone git://github.com/ansible/ansible.git
4.进入virtualenv环境
$ source /home/deploy/.virtualenv/bin/activate
(.virtualenv) [deploy@www .virtualenv]$
5.安装必要的ansible依赖包
(.virtualenv) [deploy@www .virtualenv]$ pip install paramiko PyYAML jinja2
(.virtualenv) [deploy@www .virtualenv]$ cd ansible
(.virtualenv) [deploy@www ansible]$ git submodule update --init lib/ansible/modules/core
(.virtualenv) [deploy@www ansible]$ git submodule update --init lib/ansible/modules/extras
6. 加载ansible2.3
Tip: env-setup 是 ansible 为 hacker 准备的一个脚本,用来设置一些ansible所需的环境变量,且必须按如下完整路径执行
(.virtualenv) [deploy@www ansible]$ . /home/deploy/.virtualenv/ansible/hacking/env-setup -q
(.virtualenv) [deploy@www ansible]$ ansible --version
ansible 2.3.0 (devel 333f6d447b) last updated 2016/11/02 18:04:28 (GMT +800)
lib/ansible/modules/core: (detached HEAD d2106f1c92) last updated 2016/11/02 19:32:48 (GMT +800)
lib/ansible/modules/extras: (detached HEAD 9a01d01f78) last updated 2016/11/02 19:33:45 (GMT +800)
config file =configured module search path = Default w/o overrides
7. 退出virtualenv
(.virtualenv) [deploy@www ansible]$ deactive
配置完毕
以后若想使用新版本ansible则直接执行下面两行命令即可.
# source /home/deploy/.virtualenv/bin/activate
# . /home/deploy/.virtualenv/ansible/hacking/env-setup -q