您的位置:首页 > 其它

使用Virtualenv隔离安装Ansible

2016-11-02 00:00 183 查看
摘要: 既能保证我们原有的job还可以正常在stable version下safe running, 而且又不影响我们new job在新版本下适配新的模块

因为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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  VirtualEnv ansible