【Jenkins+Ansible+Gitlab 自动化部署三剑客】学习笔记-第三章 3-3 Ansible配合virtualenv安装配置

一、概述

为了防止Python被不同的应用模块占用,需要独立一个Python来给Ansible使用。
在这里插入图片描述

二、Ansible的两种安装模式

2.1、使用yum包管理安装

在这里插入图片描述
这种方式会使ansible继承了一个系统全局下的工具,系统下的任一用户都可以使用。虽然这里可以一劳永逸,但是缺点也十分突出。当如果有用户在这里安装了针对其他应用的Python安装模块,这里就会对ansible下的python模块产生潜在的版本冲突和安全问题。原因是全局python的安装扩展目录是同一个。当ansible和别的应用使用的python安装模块一致时,但是版本不同,这样势必会出现版本混乱。最终影响产品的交付使用。

2.2、Git源码安装【推荐】

在这里插入图片描述

三、Ansible2.5+Python3.6安装

3.1、安装前的Centos7环境准备

# 关闭系统防火墙
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld
# 关闭selinux强制访问安全策略
vi /etc/sysconfig/selinux
# 修改该文件中的SELINUX=enforcing为disabled
# 重启Centos主机,使selinux的禁用操作生效
reboot
# 重新链接后,使用getenforce命令行查看当前的selinux的状态
getenforce

3.2、下载Python3.6.5

3.2.1、下载Python3.6.5编译包

Python官网下载传送门

# 下载Python3.6.5
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
# 解压Python包
tar xf Python-3.6.5.tar.xz
# 进入到Python解压后的文件夹中
cd Python-3.6.5

3.2.2、编译Python3.6.5环境

# 设定编译参数
./configure --prefix=/usr/local --with-ssl --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
# --prefix=/usr/local:将当前的Python3.6.5安装到/usr/local目录下
# --with-ensurepip=install:用来安装pip包管理工具
# --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib":用来配置Python3.6.5的参数值

注意:如果在安装中出现如下图的错误!需要安装gcc,yum install gcc;然后继续执行上面的编译命令
在这里插入图片描述
最后当看到下图的界面的时候就说明编译成功了
在这里插入图片描述

3.2.3、安装Pyth3.6.5

# 编译并将安装
make && make altinstall

安装完成!!!同时也提示我们pip包也已经安装完成!
在这里插入图片描述

3.3、安装virtualenv工具

3.3.1、给pip3.6添加软连接

由于安装的Python为3.6版本,所以pip的版本也是3.6,可以使用以下命令查看pip包的安装路径

which pip3.6

在这里插入图片描述

# 添加pip3.6的软链
ln -s /usr/local/bin/pip3.6 /usr/local/bin/pip

3.3.2、使用pip安装virtualenv工具

pip install virtualenv

在这里插入图片描述

3.4、创建ansible系统账户,并在该账户下安装Python3.6版本的virtualenv实例

3.4.1、添加deploy命名的ansible账户

# 创建deploy账户
useradd deploy
# 切换当前用户为deploy用户
su - deploy

3.4.2、创建virtualenv实例

# 在deploy用户下创建一个python3.6,ansible2.5的env实例
virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env

在这里插入图片描述

3.5、git源码安装ansible 2.5版本

首先进入到我们之前创建的**.py3-a2.5-env**目录

# 进入到.py3-a2.5-env目录
cd /home/deploy/.py3-a2.5-env/
# 校验该系统中是否安装了git
which git

在这里插入图片描述
PS:如果没有安装git相关工具的话,需要切换到root用户去安装

# 安装git相关工具
yum -y install git nss curl

在这里插入图片描述

3.5.1、克隆ansible代码到本地

git clone https://github.com/ansible/ansible.git

在这里插入图片描述

3.5.2、安装ansible相关依赖

# 加载Python3.6 virtualenv环境
source /home/deploy/.py3-a2.5-env/bin/activate
# 安装ansible依赖包
pip install paramiko PyYAML jinja2

在这里插入图片描述
但是出现了下图的错误。这个错误有可能是因为网络不好导致,可以重新执行上面的语句,重新安装即可。
在这里插入图片描述

3.5.3、移动ansible源代码,并checkout2.5版本

# 将ansible文件夹移动到.py3-a2.5-env
mv ansible .py3-a2.5-env/
# 进入ansible源代码目录
cd .py3-a2.5-env/ansible/
# 切换stable-2.5版本
git checkout stable-2.5

在这里插入图片描述

3.5.4、在子虚拟环境下加载ansible 2.5

# 加载ansible 2.5
source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q

3.5.5、验证ansible 2.5

ansible --version

在这里插入图片描述
看到上图,即完成了在ansible服务器下,在Python3.6.5的虚拟环境下安装完成。

发布了76 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_38657051/article/details/100052350