操作系统CentOS7已经于2024年6月30号停止维护,之前官方yum源比如mirrorlist.centos.org 已经不可用了,如下图:

使用createrepo,nginx自建网络yum源_自建网络yum源


配置过程

一, 备份之前的repo文件

cd /etc/yum.repos.d/
mkdir backup
mv CentOS-* backup/


二,下载服务器常用的repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
...

使用createrepo,nginx自建网络yum源_createrepo_02



三,安装建库所需工具

yum install -y yum-utils device-mapper-persistent-data lvm2 createrepo


四,使用reposync下载仓库

使用createrepo,nginx自建网络yum源_createrepo_03

reposync -r elastic-8.x -p /yum
reposync -r epel -p /yum
reposync -r extras -p /yum
reposync -r  mysql-5.7-community -p /yum
reposync -r  mysql-connectors-community -p /yum
reposync -r  mysql-tools-community -p /yum
reposync -r  updates -p /yum
reposync -r  updates -p /yum

base的话用镜像文件来下载,因为我内网服务器系统都是用centos7.8装的,所以这里这样操作

mount -o loop /opt/CentOS-7.8-x86_64-DVD-2003.iso /mnt
mkdir -p /yum/base/Packages
cp /mnt/Packages/* /yum/base/Packages


五,创建repodata仓库,生成仓库信息

createrepo  /yum/elastic-8.x
createrepo  /yum/epel
createrepo  /yum/extras
createrepo  /yum/mysql-5.7-community
createrepo  /yum/mysql-connectors-community
createrepo  /yum/mysql-tools-community
createrepo  /yum/updates
createrepo  /yum/zabbix


六,生成GPG签名秘钥

gpg --gen-key
gpg --list-keys
gpg --armor --export 8EEB2867 > RPM-GPG-KEY-qiyu
cp RPM-GPG-KEY-qiyu /etc/pki/rpm-gpg/


七,签署RPM包

yum install -y rpm-sign
rpm --addsign 
cd /yum
find . -type f -name "*.rpm"  |xargs rpm --addsign
createrepo  --update /yum/elastic-8.x
createrepo --update /yum/epel
createrepo --update /yum/extras
createrepo --update /yum/mysql-5.7-community
createrepo --update /yum/mysql-connectors-community
createrepo --update /yum/mysql-tools-community
createrepo --update /yum/updates
createrepo --update /yum/zabbix


八,安装nginx

yum clean all
yum makecache
yum install nginx -y


九,配置nginx

mv /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
....
    server {
        autoindex on;
        autoindex_exact_size on;
        autoindex_localtime on;
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name yum;
        root /yum;
    }
systemctl restart nginx


十,替换repo文件

cat > /etc/yum.repos.d/centos7.repo << EOF
[base]
name=CentOS-$releasever - Base
baseurl=http://10.10.10.249/base
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qiyu

[epel]
name=epel
baseurl=http://10.10.10.249/epel
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qiyu

[extras]
name=extras
baseurl=http://10.10.10.249/extras
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qiyu

[updates]
name=updates
baseurl=http://10.10.10.249/updates
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qiyu

[zabbix]
name=zabbix
baseurl=http://10.10.10.249/zabbix
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qiyu

[mysql-5.7-community]
name=mysql-5.7-community
baseurl=http://10.10.10.249/mysql-5.7-community
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qiyu

[mysql-connectors-community]
name=mysql-connectors-community
baseurl=http://10.10.10.249/mysql-connectors-community
enabled=1
gpgcheck=0

[mysql-tools-community]
name=mysql-tools-community
baseurl=http://10.10.10.249/mysql-tools-community
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qiyu

EOF


至此完成搭建工作, 新加的机器直接使用 centos7.repo 这个repo文件即可