背景:
由于内网是无权限访问外网的,所以导致所有内网的服务器都只能通过下载好的rpm包进行安装,而很多的rpm包都是有依赖包的,并且有版本对应。但是如果提供有中转机可以连接外网,那么就可以使用中转机进行配置YUM源,供给内网的服务器使用,如果所需要的rpm包在centos源中也有提供,也可以使用配置centos源来下载安装软件。
如果说所需要的rpm包在centos镜像源提供的足够使用,那就可直接使用centos作为下载源即可。
但大多数时候centos所提供的源是不够使用的。
如:所需要的MySQL8.0或postgresql14是在centos中是没有该版本的,所以还是需要通过下载对应版本的rpm包和对应依赖才可使用的。
工具:XSHELL
环境:CENTOS7.6
一、使用配置离线YUM源下载rpm包来使用
1、制作前提
- 需要关闭seLinux
setenforce 0
sed -ri '/^[ \t]SELINUX=/cSELINUX=disabled' /etc/selinux/config
- 关闭防火墙
systemctl stop firewalld | service firewalld stop
systemctl disable firewalld
2、创建离线镜像源仓库
mdkir -p /data/yum/repos/
3、下载安装制作yum源的工具包,方便后面制作yum源仓库
#安装createrepo
yum install createrepo -y
#配置仓库地址
createrepo /data/yum/repos
注意:此次的createrepo /data/yum/repos在每次下载完rpm包后,需要再次运行该命令,才能将新下载的rpm包加入到仓库中
4、使用apache或者NGINX将下载服务的仓库暴露出去
我这里使用的是apache
#安装
yum install httpd -y
systemctl start httpd #启动
systemctl enable httpd #加入自启动
#配置
vi /etc/httpd/conf.d/yumrepo.conf
-
Alias /yum/repos /data/yum/repos/
<Directory "/data/yum/repos/">
Options Indexes FollowSymLinks
Require all granted
</Directory>
-
apachectl -t #检查语法
apachectl graceful #重新加载配置但不重启
5、安装yum-tools工具
yumdownloader rpm包 --resolve --destdir=/data/yum/repos
#resolve 只下载到指定的目录,而不安装到系统
#destdir 下载到指定的目录
#例如:yumdownloader nginx --resolve --destdir=/data/yum/repos
#会将所需依赖都下载
安装该工具是为了使用yumdownloader下载rpm包到本地仓库,并且附带将对应的rpm包所需要的依赖包也一并下载
6、内网服务器配置yum源指向中转机
cd /etc/yum.repos.d/
#备份
mkdir backup
mv *.repo backup/
#配置yum源
vi yum.repo
-
[yumrepo]
name=Yum Repo
baseurl=http://xxxxx/yum/repo #这里的IP地址为配置了可以下载rpm包的的IP地址
enabled=1
gpgcheck=0
-
#刷新一下缓存
yum makecache #这一步是防止,刚创建好yum源但可能无法使用的问题
7、使用案例
下载NGINX
# 在中转机上通过使用yumdownloader下载包
yumdownloader nginx --resolve --destdir=/data/yum/repos/
# 刷新仓库
createrepo /data/yum/repos/
# 在需要安装NGINX的内网服务器上刷新缓存
yum makecache
# 下载安装NGINX
yum install nginx -y
# 启动NGINX
systemctl start nginx
二、使用centos作为下载源
1、在中转机上拷贝上去centos镜像源
我存放位置在/data/yum/centos目录下载
略...
可以使用xftp等相关上传工具进行上传
2、将镜像挂载
# 创建挂载点
mkdir -p /mnt/cdrom
# 挂载
mount -o loop /opt/centos/CentOS-7-x86_64-DVD-1810.iso /mnt/cdrom
# 查看挂载情况
lsblk -l df -h
3、配置yum源指向挂载的镜像地址
cd /etc/yum.repos.d/
vi local.repo
-
[local]
name=Centos repo
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
-
yum makecache # 刷新缓存
yum repolist # 查看yum仓库列表
4、通过apache将对应的地址映射出去
ln -s /mnt/cdrom/ /var/www/html/centos #软连接会自动创建centos这个文件夹
5、内网服务器配置yum源指向中转机
cd /etc/yum.repos.d/
vi yum.repo
-
[centosrepo]
name=Centos Repo
base=http://xxx/centos # 该处为配置centos下载源的地址
enabled=1
gpgcheck=0
-
yum makecache # 刷新缓存
yum repolist # 查看yum仓库列表