离线安装ansible方法


在连接外网环境下我们安装ansible直接使用yum install

yum install ansible -y

但是在内网机上要去这样安装,就没法直接用了,没有网络下载源,这时候如果包少,我们可以去rpm包网站搜索下来手动一个个传进去rpm安装即可,但是依赖较多就麻烦了。

安装ansible 依赖包有15个,15个我们也可以手动一个个rpm还可以, 但是遇到其它包中又有依赖包,依赖几十个,顺序先后都是问题,这时候我们不能用rpm一个个安装了。

一、下载安装包及依赖

首先找一台离线服务器版本相同的linux虚拟机

1.下载yumdownloadonly插件安装
yum install yum-plugin-downloadonly
2、下载所需安装包,只下载不安装
#yum 下载rpm包到指定目录,只下载不安装
yum install  --downloadonly --downloaddir=路径  安装包名
3、下载readline-devel包
yum install  --downloadonly --downloaddir=/root/ansible ansible
4、安装createrepo
yum install createrepo
5、创建软件包文件
createrepo /root/ansible/

createrepo后在ansible文件夹下看到repodata文件夹,在文件夹下可看到如下创建的repomd.xml

6、打包已下载的软件包,传到内网机
tar -czvf ansible.tar.gz /root/ansible

二、拷贝到内网

1、解压
tar -zxvf ansible.tar.gz -d /root/
2、制作yum源文件

先备份之前的文件

mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/

制作yum源

touch myyum.repo
vim myyum.repo

[myyum]
name=local resource
baseurl=file:///root/ansible
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

更新yum

yum clean all
yum update
yum repolist
3.执行安装
yum install ansible -y

在执行安装的时候还是没有装成功,报错了

Total                                                                                                                                                         56 MB/s |  21 MB  00:00:00     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7


The GPG keys listed for the "local resource" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.


 Failing package is: python2-jmespath-0.9.4-2.el7.noarch
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

这里是软件开发商在释出 RPM 文件时,会在其中添加数字签名,并释出用于验证数字签名的公钥。使用 rpm 安装软件时,rpm 会首先根据系统中已有的公钥去验证 RPM 文件的数字签名。gpg keys 就是公钥。所以在安装的时候会比对已有的公钥,发现不正确,报错了

可以直接跳过数字签名检查安装加上--nogpgcheck

sudo yum -y install ansible --nogpgcheck