游乐游手机版
首页/业界动态/文章详情

企业内部YUM源同步阿里云镜像的专业配置方案

时间:2026-08-14 18:30
超越光盘:构建企业级本地YUM源全攻略 在企业实际应用场景中,仅仅依赖操作系统安装光盘里的RPM软件包,往往捉襟见肘。一个更完善的方案是:将外网YUM源的全部软件包同步至本地。这不仅能极大地丰富本地软件仓库的包数量和完整性,更能让内网服务器在安装软件时彻底摆脱对外部网络的依赖,无需再临时申请开通网络

超越光盘:构建企业级本地YUM源全攻略

在企业实际应用场景中,仅仅依赖操作系统安装光盘里的RPM软件包,往往捉襟见肘。一个更完善的方案是:将外网YUM源的全部软件包同步至本地。这不仅能极大地丰富本地软件仓库的包数量和完整性,更能让内网服务器在安装软件时彻底摆脱对外部网络的依赖,无需再临时申请开通网络权限。

一、同步外网YUM源概述

之前我们探讨过如何使用ISO光盘镜像在局域网内通过HTTP构建统一的YUM源服务器。对于软件版本要求不高或网络限制极为严格的封闭环境,光盘镜像方案简单可靠,完全可以投入生产。

然而,当面对更复杂的应用需求时,光盘自带的软件包就显得力不从心了。这时,将外网YUM源同步至本地就成了必然选择。它不仅能补齐软件生态,更关键的是,为内网环境提供了持续、稳定的软件供给能力。

获取外网YUM源软件包,常见方法有Rsync、Wget和Reposync三种。它们各有侧重:Rsync方式效率高,但要求外网源支持RSYNC协议;Wget则更为直接通用;而Reposync工具,可以说是为同步YUM源“量身打造”,能够兼容几乎所有的远程YUM仓库。下面,我们就以Reposync为例,手把手演示如何将阿里云YUM源同步到本地服务器。

二、服务器端构建YUM源操作步骤

1. 准备环境

本次操作基于CentOS 7.9操作系统进行演示。需要明确的是,以下步骤对于红帽系(RHEL、CentOS、Fedora等)操作系统是通用的。服务器端需要能够访问互联网,而客户端则模拟为无外网访问权限的内网服务器。

2. 添加阿里云YUM源

(1) 备份原有repo文件

[root@localhost ~]# mkdir /etc/yum.repos.d/backup
[root@localhost ~]# mv  /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup

(2) 添加阿里云yum源

[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
# 清除缓存并重新生成缓存
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache

简单说明一下:Centos-7.repo是基础软件仓库的配置文件,而epel-7.repo则提供了额外的扩展软件包(EPEL源),能极大丰富可安装软件的范围。

3. 安装相关软件

[root@localhost ~]# yum install -y httpd yum-utils createrepo

这几个软件的作用很关键:

  • yum-utils:这是yum的工具包集合,如果不安装它,后续关键的reposync同步工具将无法使用。
  • createrepo:这个工具堪称本地仓库的“编目员”。它会对指定目录下的所有RPM文件进行扫描,并创建索引数据库。没有这个索引,yum命令就无法知晓仓库里有什么软件、以及它们的依赖关系。
  • httpd:也就是Apache Web服务器,用于将我们同步好的软件目录通过HTTP协议发布出去,供内网客户端访问。当然,你也可以用Nginx来替代。

4. 创建repodata目录

[root@localhost ~]# mkdir /var/www/html/centos

这个目录用于存放同步下来的软件包。请注意,如果自定义了其他目录(而非/var/www/html/),别忘了同步修改Apache的配置文件httpd.conf中的DocumentRoot指令,指向你自定义的路径。

5. 同步阿里云yum源软件包到repodata目录

[root@localhost ~]# reposync -n --repoid=extras --repoid=updates --repoid=base --repoid=epel -p /var/www/html/centos/
......(1764/1766): zlib-static-1.2.7-21.el7_9.i686.rpm                               |  58 kB  00:00:00
(1765/1766): zlib-static-1.2.7-21.el7_9.x86_64.rpm                            |  58 kB  00:00:00
(1766/1766): zenity-3.28.1-2.el7_9.x86_64.rpm                                 | 4.0 MB  00:00:01

这个过程需要一些耐心。由于需要同步的软件包数量庞大(以万计),耗时相对较长。根据服务器性能和网络状况,通常需要等待半小时或更久。配置更高的服务器自然会快一些。

参数简要解读:

  • -n:仅下载最新的软件包。
  • -p:指定软件包下载到本地的目标目录。
  • --repoid:指定要同步的仓库ID,可以指定多个。如果不指定,则会尝试同步本地配置的所有源。

同步完成后,可以查看一下成果:

[root@localhost ~]# du -sh /var/www/html/centos/*
9.0G    /var/www/html/centos/base
16G     /var/www/html/centos/epel
323M    /var/www/html/centos/extras
3.4G    /var/www/html/centos/updates

6. 运行createrepo来创建仓库索引

[root@localhost ~]# createrepo /var/www/html/centos/base
[root@localhost ~]# createrepo /var/www/html/centos/epel
[root@localhost ~]# createrepo /var/www/html/centos/extras
[root@localhost ~]# createrepo /var/www/html/centos/updates

7. 更新数据源

[root@localhost ~]# createrepo --update /var/www/html/centos/base
[root@localhost ~]# createrepo --update /var/www/html/centos/epel
[root@localhost ~]# createrepo --update /var/www/html/centos/extras
[root@localhost ~]# createrepo --update /var/www/html/centos/updates

对于首次搭建,这一步可以省略。它的主要用途在于后期维护:当阿里云源上的软件包有更新时,我们可以重新同步软件包,然后执行--update命令来更新本地仓库的索引,使其指向最新的软件版本。

8. 制作repo文件

这一步主要是为了方便客户端快速配置,属于“锦上添花”的操作,并非必须。

[root@localhost ~]# mkdir -p /var/www/html/repos/
[root@localhost ~]#  cat >> /var/www/html/repos/CentOS.repo << EOF
[base]
name=CentOS-Base
failovermethod=priority
baseurl=https://10.10.10.100/centos/base/
enable=1
gpgcheck=0

[epel]
name=CentOS-Epel
failovermethod=priority
baseurl=https://10.10.10.100/centos/epel/
enable=1
gpgcheck=0

[extras]
name=CentOS-Extras
failovermethod=priority
baseurl=https://10.10.10.100/centos/extras/
enable=1
gpgcheck=0

[updates]
name=CentOS-Updates
failovermethod=priority
baseurl=https://10.10.10.100/centos/updates/
enable=1
gpgcheck=0
EOF

注意,请将上述配置中的IP地址10.10.10.100替换为你实际YUM源服务器的地址。

9. 启动HTTP服务

(1) 启动httpd服务

# 启动HTTP并设置开机自启动
[root@localhost ~]# systemctl enable --now httpd
# 查看httpd状态
[root@localhost ~]# systemctl status httpd

(2) 关闭防火墙和Selinux
为了保证客户端能正常访问,通常需要处理防火墙和SELinux。

# 关闭防火墙(生产环境请谨慎评估)
[root@localhost ~]# systemctl disable --now firewalld

# 或者,更安全的方式是只开放Apache使用的80端口
[root@localhost ~]# firewall-cmd --add-port=80/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

# 关闭Selinux(同样,生产环境需评估)
[root@localhost ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
# 临时关闭SeLinux(立即生效,无需重启)
[root@localhost ~]# setenforce 0

三、客户端使用yum源

1. 备份原有repo文件

[root@localhost ~]# mkdir /etc/yum.repos.d/backup
[root@localhost ~]# mv  /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup

2. 获取yum源的两种方法

方法一:直接获取服务器端做好的repo文件
这是最快捷的方式,前提是服务器端已经完成了第8步。

# curl方式
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS.repo https://10.10.10.100/repos/CentOS.repo

# wget方式
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget https://10.10.10.100/repos/CentOS.repo
# 任选一种即可

方法二:在客户端手动创建repo文件
如果服务器端没有提供现成的repo文件,可以手动创建:

[root@localhost ~]# cat >> /etc/yum.repos.d/CentOS.repo << EOF
[base]
name=CentOS-Base
failovermethod=priority
baseurl=https://10.10.10.100/base/
enable=1
gpgcheck=0

[epel]
name=CentOS-Epel
failovermethod=priority
baseurl=https://10.10.10.100/epel/
enable=1
gpgcheck=0

[extras]
name=CentOS-Extras
failovermethod=priority
baseurl=https://10.10.10.100/extras/
enable=1
gpgcheck=0

[updates]
name=CentOS-Updates
failovermethod=priority
baseurl=https://10.10.10.100/updates/
enable=1
gpgcheck=0
EOF

日常工作中,强烈推荐使用方法一,简单、统一且不易出错,尤其适合批量部署。

3. 检查YUM仓库并测试

# 检查yum仓库
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
base                                      | 2.9 kB  00:00:00
epel                                      | 2.9 kB  00:00:00
extras                                    | 2.9 kB  00:00:00
updates                                   | 2.9 kB  00:00:00
(1/4): extras/primary_db                  | 136 kB  00:00:00
(2/4): base/primary_db                    | 6.1 MB  00:00:00
(3/4): epel/primary_db                    | 6.9 MB  00:00:00
(4/4): updates/primary_db                 | 2.1 MB  00:00:00
repo id                                   repo name             status
base                                      CentOS-Base           10,072
epel                                      CentOS-Epel           13,790
extras                                    CentOS-Extras          278
updates                                   CentOS-Updates        1,766
# 上面可以看到yum仓库信息说明已经设置成功了

# 安装软件包进行测试
[root@localhost ~]# yum install -y telnet

当软件能够成功安装时,就标志着你的内部YUM源已经构建成功,可以投入使用了。

至此,局域网内的其他服务器都可以通过上述两种方法之一,轻松配置并使用这个功能完整、包罗万象的本地YUM源了。

最后,分享两个实用的外网源使用技巧:

  • 按需联网:构建仓库时服务器需要连接互联网,一旦同步完成,即可断开外网。这完全不影响内网客户端对本地仓库的使用,是兼顾便利与安全的好方法。
  • 定期更新:可以制定计划任务,定期(例如每周或每月)让服务器联网,执行同步和索引更新操作,以获取安全补丁和新版本软件。更新完毕后再次断开外网,这样可以最大程度降低来自互联网的安全风险。
来源:https://www.51cto.com/article/840243.html
上一篇开发者将1990年Word 1.1a原生移植至Windows系统 下一篇告别try...finally:ES2026资源管理新特性大幅简化逻辑
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
台式机加装固态硬盘怎么选?三星9100 PRO深度解析
业界动态 · 2026-09-01

台式机加装固态硬盘怎么选?三星9100 PRO深度解析

台式机升级存储常受限于系统启动慢、游戏加载卡顿与大文件传输延迟。本文基于三星9100 PRO的PCIe 5 0架构、14800MB s读取、13400MB s写入、2200K 2600K IOPS、1TB~8TB容量、第八代V-NAND与5nm主控、镍涂层散热与DTG技术、散热片版适配及魔术师软件,提供选购判断与安装兼容性要点,帮助读者评估是否值得一步到位升级。

宁德时代2026年中期分红61.8亿元,同比增35%,创历史新高
业界动态 · 2026-09-01

宁德时代2026年中期分红61.8亿元,同比增35%,创历史新高

宁德时代发布2026年中期分红方案,总额达61 8亿元,同比增长35%。本文梳理分红具体安排、历史对比、业绩支撑及分红机制,帮助投资者评估公司现金流实力与股东回报策略。

企业硬盘报废销毁合规指南:如何选择专业机构与处理流程
业界动态 · 2026-08-31

企业硬盘报废销毁合规指南:如何选择专业机构与处理流程

企业硬盘报废面临数据复原与合规风险,需选择具备资质且流程透明的专业机构。本文解析行业乱象,介绍以团体标准为核心的合规销毁流程,涵盖上门收运、消磁粉碎、视频溯源及尾料处置,帮助企业规避泄密责任,确保数据安全闭环。

机密文件销毁找什么机构?认准团标参编与资质合规
业界动态 · 2026-08-31

机密文件销毁找什么机构?认准团标参编与资质合规

机密文件销毁找什么机构?核心在于甄别服务商是否具备正规保密资质及是否参与行业标准制定。本文解析《商业秘密及敏感信息载体销毁通用规范》团标要求,提供筛选销毁机构的实操指南,帮助企业规避数据泄露风险,确保销毁流程合规可溯。

影石Insta360 X6全球首销登顶:8K全景画质与AI创作功能解析
业界动态 · 2026-08-31

影石Insta360 X6全球首销登顶:8K全景画质与AI创作功能解析

影石Insta360 X6全球同步发售即登顶国内外主流平台销量榜首。本文解析其搭载的索尼定制方形大底传感器、4nm AI三芯架构及8K50fps画质,详解3D时光舱、AI导演等独家功能,探讨全景相机从专业工具向大众智能创作设备的演进趋势。