内部的服务器一般是不通互联网的,挂载本地光盘源,又不能下载最新的软件包,这使得内网使用yum或dnf安装软件变得非常麻烦。如果能在本地部署一个镜像源,那就能很好的解决这个问题,同步的时候链接互联网,同步完成后断开互联网,给内部的其他服务器提供最新yum源。
我这边使用的系统环境为,麒麟V10-SP1_x86,其他麒麟V10系列的操作系统步骤也基本相同。
一、首次搭建
- 安装所需软件包
yum -y install httpd reposync createrepo
- 修改
/etc/yum.repo.d/
下的xxxx.repo
文件(修改前先备份旧的配置)需要同步什么版本的系统,就把这个系统的公网yum源配置文件放在这里,然后把$basearch
修改为需要拉取镜像源的架构,例如:x86_64、aarch64、loongarch64。以v10-sp3 x86镜像源为例,参考配置文件如下
###Kylin Linux Advanced Server 10 - os repo###
[ks10-adv-os]
name = Kylin Linux Advanced Server 10 - Os
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/x86_64/
gpgcheck = 0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
[ks10-adv-updates]
name = Kylin Linux Advanced Server 10 - Updates
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/updates/x86_64/
gpgcheck = 0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
修改完成后刷新缓存
yum clean all
yum makecache
- 拉取在线源到本地
# 新建仓库存储目录
mkdir -p /data/repo/V10-SP3-x86
# 开始同步
reposync -m -p /data/repo/V10-SP3-x86/
- 创建本地仓库并创建组信息
cd /data/repo/V10-SP3-x86/
createrepo -g ks10-adv-os/comps.xml .
- 配置
httpd
服务
# 链接仓库文件
ln -s /data/repo/V10-SP3-x86/ /var/www/html/repo/V10-SP3-x86
# 开启httpd服务
systemctl start httpd
systemctl enable httpd
# 添加防火墙策略
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
- 浏览器访问仓库源地址,确认web服务能正常访问
http://SERVER_IP/repo/V10-SP3-x86
二、后期再次同步
基于第一部分的搭建环境,后续如果需要再次同步仓库,可以按照如下步骤操作
- 确保目前
/etc/yum.repo.d/
下的xxxx.repo
仓库文件配置的是需要同步外网仓库的地址和架构,配置完成后执行命令
yum clean all
yum makecache
- 使用命令
yum repolist
列出可同步的repo id
[root@localhost V10-SP3-x86]# yum repolist
repo id repo name
ks10-adv-os Kylin Linux Advanced Server 10 - Os
ks10-adv-updates Kylin Linux Advanced Server 10 - Updates
- 同步仓库,全量同步、部分同步选择一种即可
- 全量同步:
reposync -m -p /data/repo/V10-SP3-x86/
- 部分同步
例如:选择ks10-adv-os
reposync --repoid ks10-adv-os -p /data/repo/V10-SP3-x86/
- 刷新本地仓库
cd /data/repo/V10-SP3-x86/
createrepo -g ks10-adv-os/comps.xml .
三、 客户端配置方法
- 备份原yum配置文件
cd /etc/yum.repos.d/
mv kylin_x86_64.repo kylin_x86_64.repo.bak
- 创建新的仓库配置文件
vi /etc/yum.repos.d/kylin_x86_64_localnet.repo
,添加如下配置:(替换SERVER_IP)
[ks10-adv-local-net]
name = Kylin Linux Advanced Server 10 - local network repo
baseurl = http://SERVER_IP/repo/V10-SP3-x86/
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
- 修改完成后刷新缓存
yum clean all
yum makecache
4. 验证可用性,能加载出来组列表,说明该内网源可以正常使用
yum grouplist