一、描述
为了提升内网环境下软件安装与依赖管理的效率,配置局域网仓库,通过定时同步在线仓库来保证软件源始终为最新。同时出于安全考虑,在虚拟机中部署该仓库,这样可以在内网主机需要更新或安装软件包时,才将其安全地接入内网环境进行使用。
二、环境准备
1.可联网主机一台,配置为局域网仓库,操作系统版本:CentOS Linux release 7.9.2009 (Core)
2.存储空间根据实际需要减小或增加,建议不小于60G
三、部署步骤
1、因为我是测试环境,没有单独分配一块数据盘,正式环境建议单独增加一块数据盘做为仓库的存储位置
2、关闭禁用防火墙
systemctl stop firewalld
systemctl disable firewalld
3、默认centos安装完后,使用的源是mirrorlist.centos.org,已无法访问,建议参照以下链接更换源
https://yan-jian.com/centos%E6%9B%B4%E6%8D%A2%E9%98%BF%E9%87%8C%E4%BA%91%E6%BA%90.html
4、安装dnf命令
yum install dnf -y
5、安装yum扩展包和epel-release源
yum-utils
是一个提供额外管理和配置 YUM(Yellowdog Updater, Modified)软件包管理器的工具的集合。YUM 是基于 RPM 的 Linux 发行版(如 CentOS、Fedora、RHEL 等)中的一个关键组件,用于自动更新、安装、删除和管理 RPM 软件包及其依赖关系。
dnf install yum-utils epel-release -y
6、部署web服务
#安装http服务
dnf install httpd -y
7、同步在线仓库至本地
#获取软件包列表总数
[root@localhost yum.repos.d]# yum list | wc -l
24092
#创建本地仓库目录:
mkdir -p /var/www/html/repo
#开始同步在线仓库,-p 指定下载目录,默认为当前目录
reposync -p /var/www/html/repo
6、下载完成可以检查目录大小和本地仓库源目录
#检查下载库的目录大小
du -sh /var/www/html/repo
#遍历本地仓库源目录
ls -lh /var/www/html/repo
7、安装createrepo工具,用于创建本地元数据和仓库索引
dnf install createrepo -y
8、为下载好的软件包生成元数据和索引,使其可以被外部访问
createrepo /var/www/html/repo/appstream/Packages/ -o /var/www/html/repo/appstream/Packages/
createrepo /var/www/html/repo/baseos/Packages/ -o /var/www/html/repo/baseos/Packages/
createrepo /var/www/html/repo/epel-cisco-openh264/Packages/ -o /var/www/html/repo/epel-cisco-openh264/Packages/
createrepo /var/www/html/repo/extras/Packages/ -o /var/www/html/repo/extras/Packages/
createrepo /var/www/html/repo/epel/Packages/ -o /var/www/html/repo/epel/Packages/
createrepo /var/www/html/repo/base/Packages/ -o /var/www/html/repo/base/Packages/
9、重启服务,在浏览器访问可以看到以下仓库名
四、客户端测试
内网服务器上配置源地址为上述虚拟机,安装软件包测试。
1、备份源文件
mkdir backup
mv /etc/yum.repos.d/* /root/backup/
2、新建repo文件,配置内网源地址
vim CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://192.168.213.141/repo/base/Packages
enabled=1
gpgcheck=1
gpgkey=http://192.168.213.141/repo/key/RPM-GPG-KEY-CentOS-7
[baseos]
name=Linux-BaseOS
baseurl=http://192.168.213.141/repo/baseos/Packages
enabled=1
gpgcheck=1
gpgkey=http://192.168.213.141/repo/key/RPM-GPG-KEY-CentOS-7
[appstream]
name=Linux-AppStream
baseurl=http://192.168.213.141/repo/appstream/Packages
enabled=1
gpgcheck=1
gpgkey=http://192.168.213.141/repo/key/RPM-GPG-KEY-CentOS-7
[extras]
name=Linux-extras
baseurl=http://192.168.213.141/repo/extras/Packages
enabled=1
gpgcheck=1
gpgkey=http://192.168.213.141/repo/key/RPM-GPG-KEY-CentOS-7
[epel]
name=Linux-epel
baseurl=http://192.168.213.141/repo/epel/Packages
enabled=1
gpgcheck=1
gpgkey=http://192.168.213.141/repo/key/RPM-GPG-KEY-CentOS-7
[epel-cisco-openh264]
name=Linux-epel-cisco
baseurl=http://192.168.213.141/repo/epel-cisco-openh264/Packages
enabled=1
gpgcheck=1
gpgkey=http://192.168.213.141/repo/key/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever-Updates
baseurl=http://192.168.213.141/repo/updates/Packages
enabled=1
gpgcheck=1
gpgkey=http://192.168.213.141/repo/key/RPM-GPG-KEY-CentOS-7
备注:RPM-GPG-KEY-CentOS-7文件可以从阿里云http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 下载后上传至服务器。
3、重建缓存
yum clean all && yum makecache
4、查看可用软件包
yum list
5、安装软件包测试
yum install net-tools -y