依赖不同ansible版本的项目靠谱部署方法--去除依赖

自从使用ansible以来,开发项项目从测试 安装部署,验证速度都得到了很快的提升,特别是实现了全部自动化的测试和部署,大幅度节省了人力物力。

但是一个苦恼的问题一直困恼着. ansible 从1.9到现在的2.8.0dev,不断的进行版本升级. 相同的代码在不同版本的ansible之间不是100%兼容的。这个就产生了一个问题: 如果确保你的代码可以在任何地方100%可靠的执行?

经常发生这样的事:几个月前的项目部署脚本测试了上百遍都正常的脚本,突然不灵了,浪费了大量的时间和精力。—因为依赖的环境发生了变化. 可能是库可能是python 版本不一样,可能是环境path 设置不一样,可能是权限问题,…等等,诸如此类,都是给项目带来了不稳定的因素.

ansible 是基于python 开发的,python 从2.x 到 3.7.x 版本也非常多.
同一台机器安装了python2.x 和python3.x 是很常见的事情。
python3.x 是未来的趋势,python2.x 即将停止开发了.

解决办法:
创建不同版本的ansible 文件夹, 然后在对应的ansible文件夹内安装对应版本的 ansible 安装相应的虚拟环境和依赖。

cd ~/tools/
mkdir ansible2.7.5
cd ansible2.7.5
easy_install pip
pip upgrade pip
pip install virtualenv

#virtualenv -p python2 venv #可以指定python版本python2
virtualenv -p python3 venv #可以指定python版本 python3
#python3 -m venv venv
source venv/bin/activate

#列出哪些ansible是可以通过pip安装的
pip install ansible==
在这里插入图片描述
pip install ansible==2.7.5
pip install ansible

下面写个便捷环境切换脚本:
happy:ansible2.7.5 happy$ more start.sh
#!/bin/bash
#确保shell 切换到当前shell 脚本文件夹
current_file_path= ( c d " (cd " (cd"(dirname “$0”)"; pwd)
cd ${current_file_path}

echo "请用 source "$0
source venv/bin/activate

python --version
ansible --version

echo “请切换到你的项目目录”
#venv/bin/deactivate

举例2:
创建一个ansible2.6.10 执行环境.
cd ~/tools
mkdir ansible2.6.10
cd ansible2.6.10
virtualenv -p python2 venv #这里是为了举例,你也可以换成python3
ls
venv
source venv/bin/activate
(venv) happy:ansible2.6.10 happy$ pip install ansible2.6.10 #注意一定要在虚拟环境里安装才有效.
Collecting ansible
2.6.10
Downloading …

(venv) happy:ansible2.6.10 happy$ python --version
Python 2.7.15
(venv) happy:ansible2.6.10 happy$ ansible --version

在这里插入图片描述

cd ~/work/ceph-cluster-offline-install/ceph-cluster-offline-install
(venv) happy:ceph-cluster-offline-install happy$ pip install -r requirements.txt
ansible-playbook -vvv main.yml

在这里插入图片描述

发现原来的playbook 都可以正常运行了。
因为之前是在python2.7.x 环境下,ansible2.6.x 环境下。

通过以上的演示,可以得出。 这种使用虚拟环境安装ansible 是确保项目可以正常部署的一种途径.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心自由天使

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值