由于ansible自己由python编写而成, 因此咱们能够使用python下的virtualenv模块对咱们所需的ansible发行版进行隔离安装, 这样既能保证咱们原有的job还能够正常在stable version下safe running, 并且又不影响咱们new job在新版本下适配新的模块.python
一.安装virtualenvgit
1.保证系统默认YUM源github
2.安装easy_installjson
# whoamibash
root
# yum install python-setuptools python-setuptools-develide
3.安装pipspa
# easy_install pipcode
4.安装virtualenvip
# 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