使用Virtualenv隔離安裝Ansible

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

相關文章
相關標籤/搜索