在生产网络中正常情况下是无发连接Internet的,那么我们要安装软件只能在可以上互联网的主机上下载所需要的软件,然后拷贝到无Internet的主机上进行安装。这里介绍在Centos7中离线安装Ansible的方法。
这里介绍使用rpm包安装和使用pip安装。
一、先说使用rpm包安装的方法:
1、首先需要配置本地yum源,可以使用光盘挂载到目录的方式来做本地yum源,也可以直接把光盘中的文件拷贝到系统中的某个目录下,我这里已经把光盘中的文件拷贝到mnt目录下的iso中,所以我的yum源配置文件配置如下:
cat /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/iso
gpgcheck=0
enabled=1
2、下载安装Ansible的安装包和所需要的依赖包,然后把依赖包和安装包上传到需要安装的主机上,我下载的包如下,注意环境不一样,依赖包的需要多少也不一样,安装时提示少那个依赖包就下载那个包。
3、安装包下载完成后,以下命令在下载的软件包目录下执行,这里不使用rpm -ivh安装时因为使用yum localinstall安装可以解决一些依赖关系,开始安装:
yum localinstall python-jinja2-2.7.2-2.el7.noarch.rpm -y
yum localinstall python-httplib2-0.7.7-3.el7.noarch.rpm -y
yum localinstall sshpass-1.06-1.el7.x86_64.rpm -y
yum localinstall python-crypto-2.6.1-1.el7.centos.x86_64.rpm -y
yum localinstall python-ecdsa-0.11-3.el7.centos.noarch.rpm -y
yum localinstall python-paramiko-1.12.4-1.el7.centos.noarch.rpm -y
yum localinstall python-keyczar-0.71c-2.el7.noarch.rpm -y
yum localinstall PyYAML-3.10-11.el7.x86_64.rpm -y
yum localinstall python2-jmespath-0.9.0-5.el7.noarch.rpm -y
yum localinstall python-passlib-1.6.5-2.el7.noarch.rpm -y
yum localinstall ansible-2.2.1.0-1.el7.noarch.rpm -y
二、使用pip安装Ansible
先在可以上网的主机上,使用pip下载ansible,下载ansible时也会把安装的依赖包也一起下载了,下载好之后,把下载的所有包拷贝到没有联网的主机上进行安装。
1、在使用pip安装ansible时,需要先安装pip,我的Centos7环境的是最小安装,所以很多软件都没有安装。
(1)、先 从pip官网 https://pypi.python.org/pypi/pip 下载pip的源代码,然后解压源码包,再进行安装pip软件:
# tar -zxvf pip-9.0.1.tar.gz
# cd pip-9.0.1
解压完成进行安装pip
# python setup.py install
我安装pip的时候,安装提示报错,说少了setuptools,所以需要先安装setuptools
(2)、 从setuptools官网 https://pypi.python.org/pypi/setuptools下载setuptools源码包,并解压:
# unzip setuptools-38.2.3.zip
# cd setuptools-38.2.3
解压完成进行安装setuptools
# python setup.py install
再次进入到pip的解压目录下,再次安装pip,执行如下命令:
# python setup.py install
(3)、安装ansible2.2.1.0版本, 下载ansible,在使用pip下载时,会把ansible的依赖包也会自动一起下载,开始下载:
# pip download ansible==2.2.1.0
注意: 这样会一个包一个包的自动下载下来到当前的目录下,下载完成后要记录包的下载顺序,因为在安装的时候是从最后下载的一个包往前安装,我们把下载的包打包,然后拷贝到没有连接互联网的主机上进行安装,我的下载顺序如下:
setuptools在安装第三方包时都需要安装的,所以要先安装,安装这个setuptools包之后,其他要按顺序从最后下载的一个包往前安装 (setuptools包之前已经安装,这里不用理了)
在安装之前也需要安装一些必要的依赖包,所以也需要配置本地yum源,配置本地yum源这里不再说了,直接安装依赖包关系:
# yum install openssl openssl-devel libffi-devel zlib-devel git gcc python-devel -y
(4)、开始安装Ansible:
安装方法:
如果是 .whl文件 就直接 pip install xxx.whl
如果是 tar.gz 就解压 然后进入目录使用 python setup.py install
安装顺序如下:
# tar zxvf pycparser-2.18.tar.gz
# cd pycparser-2.18
# python setup.py install
#pip install asn1crypto-0.23.0-py2.py3-none-any.whl
#pip install ipaddress-1.0.18-py2-none-any.whl
#pip install enum34-1.1.6-py2-none-any.whl
#pip install idna-2.6-py2.py3-none-any.whl
#pip install cffi-1.11.2-cp27-cp27mu-manylinux1_x86_64.whl
#pip install six-1.11.0-py2.py3-none-any.whl
# tar zxvf MarkupSafe-1.0.tar.gz
# cd MarkupSafe-1.0
# python setup.py install
#pip install PyNaCl-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl
#pip install cryptography-2.1.4-cp27-cp27mu-manylinux1_x86_64.whl
#pip install bcrypt-3.1.4-cp27-cp27mu-manylinux1_x86_64.whl
#pip install pyasn1-0.4.2-py2.py3-none-any.whl
# tar -zxvf pycrypto-2.6.1.tar.gz
# cd pycrypto-2.6.1
# python setup.py install
#pip install setuptools-38.2.3-py2.py3-none-any.whl
# tar zxvf PyYAML-3.12.tar.gz
# cd PyYAML-3.12
# python setup.py install
#pip install Jinja2-2.8.1-py2.py3-none-any.whl
#pip install paramiko-2.4.0-py2.py3-none-any.whl
# tar zxvf ansible-2.2.1.0.tar.gz
# cd ansible-2.2.1.0
# python setup.py install
到这里安装完成了。
注意: 使用这种pip方式,虽然能自动解决一些依赖问题(不是全部),但是pip安装的在etc目录下没有创建ansible文件夹,所以也就没有ansible.cfg和hosts这两个文件。
但ansible.cfg和hosts这两个文件在解压时的ansible的安装包的压缩文件时会在解压的目录下的examples/下有这两个文件,所以只要把这两个文件ansible.cfg和hosts文件拷到/etc/ansible/就可以了!