由於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