CentOS7 Linux生产环境源码编译离线安装Ansible自动化运维工具
环境说明
因为公司需要实现自动化部署应用服务,所以选择了Ansible,yum安装Ansible固然简单,但是生产环境服务器通网还是不太现实,所以这里主要介绍离线安装Ansible.
yum安装Ansible(服务器网络正常是前提)
# 安装epel-release扩展源
yum install epel-release -y
# 安装ansible
yum install ansible -y
# 查看ansible版本
ansible --version
离线安装Ansible
详细介绍CentOS7 Linux系统离线安装Ansible的过程
Python版本说明
如果是python2.版本,setuptools的版本必须低于45,如果python3.版本,则可以安装,否则编译Ansible的时候会提示警告!(建议使用Python3+版本)
控制服务器:需要安装 Python2.6/2.7
被控服务器:需要安装 Python2.4 以上版本,若低于 Python2.5 需要安装 pythonsimplejson; 若启用了 selinux,则需要安装 libselinux-python。
Linux系统版本以及Python版本
[root@vm-CentOS75-1-63 ansible-2.9.7]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@vm-CentOS75-1-63 ansible-2.9.7]# python --version
Python 2.7.5
# 安装python-devel和openssl-devel(前提需要配置本地yum源,可参考https://www.cnblogs.com/fusheng11711/p/10863845.html)
yum -y install python-devel openssl-devel libffi-devel
我们去Ansible的官网下载到最新的源代码包,下载地址:https://releases.ansible.com/ansible/ 在源代码包中有一个requirements.txt文件,里面记录了安装Ansible需要依赖的包,在实际安装这些依赖包中,我们会发现这些依赖包又会依赖一些其它的包,所以我在这儿给大家详细列出,其他依赖包下载地址为https://pypi.org/
![](https://img2020.cnblogs.com/blog/1626773/202004/1626773-20200422161123099-1733909144.png
以其中的setuptools包为例,在https://pypi.org/中查找setuptools,其他依赖包不再重复说明
选择 setptools-46.1.3.zip包(版本自行决定,为了追求速度可复制链接后使用迅雷下载)
所有的包如下,如果不想下载多个,可关注本博客后,私信获取所有安装包的链接
下载完毕后开始依次解压并安装
# 安装 setuptools
unzip setuptools-41.0.1.zip
cd setuptools-41.0.1
python setup.py install
# 安装pycrypto
tar -xzf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
python setup.py install
# 安装 PyYAML
tar -xzf PyYAML-5.1.tar.gz
cd PyYAML-5.1
python setup.py install
# 安装MarkupSafe
tar -xzf MarkupSafe-1.1.1.tar.gz
cd MarkupSafe-1.1.1
python setup.py install
# 安装Jinja2
tar -xzf Jinja2-2.10.1.tar.gz
cd Jinja2-2.10.1
python setup.py install
# 安装ecdsa
tar -xzf ecdsa-0.13.2.tar.gz
cd ecdsa-0.13.2
python setup.py install
# 安装simplejson
tar -xzf simplejson-3.16.0.tar.gz
cd simplejson-3.16.0
python setup.py install
# 安装libffi-devel
yum -y install libffi-devel-3.0.5-3.2.el6.x86_64.rpm
# 安装pycparser
tar -xzf pycparser-2.19.tar.gz
cd pycparser-2.19
python setup.py install
# 安装cffi
tar -xzf cffi-1.12.3.tar.gz
cd cffi-1.12.3
python setup.py install
# 安装ipaddress
tar -xzf ipaddress-1.0.22.tar.gz
cd ipaddress-1.0.22
python setup.py install
# 安装six
tar -xzf six-1.12.0.tar.gz
cd six-1.12.0
python setup.py install
# 安装asn1crypto
tar -xzf asn1crypto-0.24.0.tar.gz
cd asn1crypto-0.24.0
python setup.py install
# 安装idna
tar -xzf idna-2.8.tar.gz
cd idna-2.8
python setup.py install
# 安装pyasn1
tar -xzf pyasn1-0.4.5.tar.gz
cd pyasn1-0.4.5
python setup.py install
# 安装PyNaCl
tar -xzf PyNaCl-1.3.0.tar.gz
cd PyNaCl-1.3.0
python setup.py install
# 安装cryptography
tar -xzf cryptography-2.6.1.tar.gz
cd cryptography-2.6.1
python setup.py install
# 安装bcrypt
tar -xzf bcrypt-3.1.6.tar.gz
cd bcrypt-3.1.6
python setup.py install
# 安装paramiko
tar -xzf paramiko-2.4.2.tar.gz
cd paramiko-2.4.2
python setup.py install
# 安装ansible
tar -xzf ansible-latest.tar.gz
cd ansible-2.7.10/
python setup.py install
到这里安装结束,产看Ansible版本
ansible --version
ansible 2.9.7
config file = None
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible-2.9.7-py2.7.egg/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
成功!
# 修改Ansible配置文件位置
cp -a /opt/cosmo/com/ansible/ansible-2.9.7/examples/ansible.cfg /etc/ansible/
cp -a /opt/cosmo/com/ansible/ansible-2.9.7/examples/hosts /etc/ansible/
# 修改ansible.cfg文件开启日志
sed -i.bak 's/#log_path/log_path/' /etc/ansible/ansible.cfg
# 启动ansible
配置Ansible可视化图形界面,请参照https://www.cnblogs.com/fusheng11711/p/12220932.html