以ansible为例

可联网主机

更换阿里云yum源

1
2
3
4
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

安装所需软件包

1
2
yum-utils工具(可使用yumdownloader命令),createrepo(生成repo库)
yum install yum-utils createrepo

下载ansible依赖包

1
2
3
mkdir ansible-offline
cd ansible-offline
yumdownloader --resolve --destdir ./ ansible

创建repo仓库

1
2
cd ..
createrepo ansible-offline

编写安装脚本

1
vim ansible-offline/install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
path=$(cd `dirname $0`; pwd)
cat > /etc/yum.repos.d/ansible.repo << EOF
[ansible]
name=ansible
baseurl=file://${path}
gpgcheck=0
enabled=1
EOF

echo "清除YUM缓存"
yum clean all
echo "重建YUM缓存"
yum makecache
echo "安装Ansible"
yum install ansible -y

打包

1
tar -zcf ansible-offline.tar.gz ansible-offline

离线主机

解压

1
tar -zxf ansible-offline.tar.gz

安装ansible

1
2
cd ansible-offline
sh install.sh

可联网主机系统配置尽量与离线主机一致,尤其安装系统是所选软件包尽量一样,否则会导致联网主机下载依赖少而无法到离线主机上安装