问题概述
为了提升内网环境下软件安装与依赖管理的效率,配置局域网仓库,通过定时同步在线仓库来保证软件源始终为最新。同时出于安全考虑,在虚拟机中部署该仓库,这样可以在内网主机需要更新或安装软件包时,才将其安全地接入内网环境进行使用。
环境准备
1.可联网主机一台,配置为局域网仓库。
2.存储空间根据实际需要减小或增加,建议不小于50G;
操作步骤
1.为虚拟机添加一块硬盘,用于存储在线仓库的软件包

2.对新添加的磁盘做初始化操作
#创建分区
fdisk /dev/sda
#格式化磁盘
mkfs.ext4

3.创建磁盘挂载目录,用于存储软件包
mkdir -p /mnt/rocky9/
#临时挂载
mount /dev/sda1 /mnt/rocky9/

注:如需永久挂载则需修改如下配置文件,配置为开机自动挂载
vim /etc/fstab

4.安装yum扩展包和epel-release源
yum-utils
是一个提供额外管理和配置 YUM(Yellowdog Updater, Modified)软件包管理器的工具的集合。YUM 是基于 RPM 的 Linux 发行版(如 CentOS、Fedora、RHEL 等)中的一个关键组件,用于自动更新、安装、删除和管理 RPM 软件包及其依赖关系。
dnf install yum-utils epel-release -y

5.同步在线仓库至本地,我这里使用阿里云源
#获取当前软件包列表总数
dnf list|wc -l
#开始同步在线仓库,-p 指定下载目录,默认为当前目录
reposync -p /mnt/rocky9/
可以看到当前仓库的软件包总数为:30110

开始同步在线仓库,这里已经提前下载过一部分了,所以会自动跳过已下载的软件包

6.下载完成检查目录大小,以及仓库源
du -sh /mnt/rocky9

7.安装createrepo
工具,用于创建本地元数据和仓库索引
dnf install createrepo

8.为下载好的软件包生成元数据和索引,使其可以被外部访问
createrepo /mnt/rocky9/appstream/Packages/ -o /mnt/rocky9/appstream/Packages/
createrepo /mnt/rocky9/baseos/Packages/ -o /mnt/rocky9/baseos/Packages/
createrepo /mnt/rocky9/epel-cisco-openh264/Packages/ -o /mnt/rocky9/epel-cisco-openh264/Packages/
createrepo /mnt/rocky9/extras/Packages/ -o /mnt/rocky9/extras/Packages/
createrepo /mnt/rocky9/epel/Packages/ -o /mnt/rocky9/epel/Packages/
注:如未执行该步骤,在内网主机添加本地源后会出现以下错误

部署web服务
1.为了使局域网设备能够访问该仓库,配置web服务为局域网其他主机提供本地仓库服务。
dnf install httpd -y

2.将网页根目录指向刚才下载的软件包目录
vim /etc/httpd/conf/httpd.conf
<Directory "/mnt/rocky9/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

3.重启服务,在浏览器访问可以看到以下仓库名
systemctl restart httpd
systemctl enable httpd

配置测试
在内网服务器上配置源地址为上述虚拟机,安装软件包测试。
1.备份内网主机源文件
[root@test1 yum.repos.d]# mkdir bak
[root@test1 yum.repos.d]# mv *.repo bak/

2.新建repo
文件,配置内网源地址
baseos]
name=Rocky Linux-BaseOS
baseurl=http://192.168.3.5/baseos/Packages
enabled=1
[appstream]
name=Rocky Linux - AppStream
baseurl=http://192.168.3.5/appstream/Packages
enabled=1
[extras]
name=Rocky Linux-AppStream
baseurl=http://192.168.3.5/extras/Packages
enabled=1
[epel]
name=Rocky Linux-AppStream
baseurl=http://192.168.3.5/epel/Packages
enabled=1
[epel-cisco-openh264]
name=Rocky Linux-AppStream
baseurl=http://192.168.3.5/epel-cisco-openh264/Packages
enabled=1
2.重建缓存
dnf clean all
dnf makecache

3.查看可用软件包
dnf list

4.安装软件包测试
dnf install vsftpd -y

PS:如果服务端启用了防火墙,还需放行80端口,否则内网其他主机无法通过http访问仓库
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd -reload

▽往期推荐△
原文始发于微信公众号(青菜浪人):
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/308265.html