virtualenv环境下git源码安装Asible
安装epel和方便工具
# yum install epel-release -y && yum install lrzsz -y
下载python3.6.5
安装gcc
# yum -y install gcc
安装git
# yum install git nss curl -y
安装openssl-devel,不然virtualenv报错
# yum install openssl-devel -y
安装python3.6
# tar xf Python-3.6.5.tar.xz
# cd Python-3.6.5
修改Setup文件
# vi /root/Python-3.6.5/Modules/Setup.dist
修改结果如下:(去掉最后4行的注释) 否则可能会报错:No module named _ssl
# Socket module helper for socket(2) _socket socketmodule.c timemodule.c # Socket module helper for SSL support; you must comment out the other # socket line above, and possibly edit the SSL variable: SSL=/usr/local/ssl _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -lssl -lcrypto
编译安装
# ./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
# yum -y install zlib*
# make && make altinstall
安装virtualenv
# which pip3.6
/usr/local/bin/pip3.6
做个软链接,可直接pip触发pip3.6
# ln -s /usr/local/bin/pip3.6 /usr/local/bin/pip
# pip install virtualenv -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
创建ansible系统账号
[root@localhost Python-3.6.5]# useradd deploy
[root@localhost Python-3.6.5]# su - deploy
在deploy用户下创建一个python3.6版本的virtualenv
# virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env
加载virtualenv,并在该虚拟环境下安装依赖包
$ source /home/deploy/.py3-a2.5-env/bin/activate
(.py3-a2.5-env) [deploy@localhost ~]$ pip install paramiko PyYAML jinja2
下载ansible源码包(这个下来的应该是有各个版本的)
(.py3-a2.5-env)# git clone https://gitee.com/mirrors/ansible.git
将ansible源码包移动至虚拟环境下,并进入该目录
(.py3-a2.5-env)# mv ansible .py3-a2.5-env/
(.py3-a2.5-env)$ cd .py3-a2.5-env/ansible/
将ansible版本切换至stable-2.5
(.py3-a2.5-env)# git checkout stable-2.5
在虚拟环境下加载ansible2.5版本(不用git下载,而是直接下2.5版本,没有hacking文件夹,没法用这个方法安装)
(.py3-a2.5-env)# source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q
查看
(.py3-a2.5-env) [deploy@localhost ansible]$ ansible --version
ansible 2.5.15 (stable-2.5 0d1ecee767) last updated 2020/09/21 15:17:30 (GMT +800) config file = None configured module search path = ['/home/deploy/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/deploy/.py3-a2.5-env/ansible/lib/ansible executable location = /home/deploy/.py3-a2.5-env/bin/ansible python version = 3.6.5 (default, Sep 19 2020, 15:09:49) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
安装成功!