文档章节

使用Virtualenv隔离安装Ansible

408582708
 408582708
发布于 2016/11/02 22:46
字数 515
阅读 41
收藏 0
点赞 0
评论 0

因为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

本文转载自:http://www.showerlee.com/archives/1862

共有 人打赏支持
408582708
粉丝 0
博文 30
码字总数 65055
作品 0
朝阳
程序员
使用virtualenv和virtualenvwrapper创建多版本python环境

virtualenv为python下用来创建虚拟python环境的工具,可以指定一个目录单独创建一个虚拟的python环这里输入代码境,防止多项目的库冲突 virtualenvwrapper封装了virtualenv,使virtualenv更加...

子夜闻雪 ⋅ 2016/12/16 ⋅ 0

CentOS7.4 部署 Django + Python3 + Apache + Mod_wsgi

安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python: Python3.6.5 Apache: Apache 2.4.6 Mod_wsgi: 4.6.4 Django: Django 2.0.4 一. 系统环境配置 1.关闭 iptables 和 selinux 修......

xjtuhit ⋅ 04/19 ⋅ 0

MacOS安装Tensorflow,在PyCharm运行开发

在之前的文章介绍了如何在Docker安装Tensorflow和运行代码,但是遇到的问题也很显著,我们编写的代码没有无法直观看到静态错误,无法得知语法是否错误,必须运行过后才可以看到,同时也无法D...

ImWiki ⋅ 05/12 ⋅ 0

使用Django构建Python Restful服务1、搭建一个Django Web环境

文章首发个人微信公众号及博客:http://zmister.com/archives/260.html 欢迎访问个人博客:http://zmister.com 查看更多Python应用文章 欢迎关注个人微信公众号:州的先生 及时交流讨论 1.0 ...

州的先生 ⋅ 05/16 ⋅ 0

开发工具|给你的项目买份保险:Python虚拟环境

读完需要 9分钟 1. 什么是虚拟环境? 虚拟环境的意义,就如同 虚拟机 一样,它可以实现不同环境中Python依赖包相互独立,互不干扰。这在一定程度的意义上,给了我们的项目一份很有力的保障。...

p柯西 ⋅ 06/19 ⋅ 0

Python 虚拟环境 Virtualenv 分别在 Windows 和 Linux 上的安装和使用

virtualenv 是用来创建 Python 的虚拟环境的库,虚拟环境能够独立于真实环境存在,并且可以同时有多个互相独立的 Python 虚拟环境,每个虚拟环境都可以营造一个干净的开发环境,对于项目的依...

水手 ⋅ 06/14 ⋅ 0

Python Scrapy 爬虫(一):环境搭建

  三年前的一天,我在灵隐寺求佛时,偶遇一高僧,法号智息。大师见我眉头紧皱,心事重重,于是便主动上前来开导我。大师充满智慧地告诉我了一句真理:“人生苦短,及时行乐。”   在大师...

雨林_a1d6 ⋅ 05/24 ⋅ 0

将 virtualenv 创建的虚拟环境加入 Jupyter notebook kernel 以及无效 kernel 的删除

virutalenv 可以用来创建隔离的虚拟环境,可以很好地将不同项目之前的环境与依赖包文件隔离开。本文将介绍如何把 virtualenv 环境添加到 jupyter notebook 的 kernel 中。 安装 virutalenv 提...

叶俊贤 ⋅ 06/07 ⋅ 0

Ubuntu系统下python虚拟环境的创建和使用

使用虚拟环境的意义在于三点: 创建独立的Python环境,多个Python互相独立互不影响 虚拟环境中,可以在没有权限的情况下直接安装新套件 不同应用在不同的虚拟环境中可以使用不同的套件版本,...

戴千岩 ⋅ 2017/09/23 ⋅ 0

VirtualEnv 16.0.0 发布,创建独立 Python 环境的工具

VirtualEnv 16.0.0 已正式发布,VirtualEnv 用于在一台机器上创建多个独立的 Python 运行环境,可隔离项目之间的第三方包依赖,为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可...

王练 ⋅ 05/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 22分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 26分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 32分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 32分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 33分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 59分钟前 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

Java序列化和反序列化

1、什么是序列化和反序列化 序列化:把对象转换为字节序列的过程。 反序列化:把字节序列恢复成对象的过程。 2、被序列化的类需要实现serializable接口,只是为了标注该对象是可以被序列化的...

IT-Mamba ⋅ 今天 ⋅ 0

流式构建原理

流式构建需要达到分钟级的数据更新频率,Kylin采用类似于Spark Streaming的做法,每隔数分钟进行一次微构建。这边的构建需要考虑到一个延迟因素,分布式网络存在延迟等因素,该时间段的数据有...

无精疯 ⋅ 今天 ⋅ 0

在maven项目工程编写solr代码,需要的依赖

solrJ <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>6.6.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents<......

爱运动的小乌龟 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部