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

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


配置过程

一, 备份之前的repo文件

cd /etc/yum.repos.d/
mkdir backup
mv CentOS-* backup/
  • 1.
  • 2.
  • 3.


二,下载服务器常用的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
...
  • 1.
  • 2.
  • 3.
  • 4.

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



三,安装建库所需工具

yum install -y yum-utils device-mapper-persistent-data lvm2 createrepo
  • 1.


四,使用reposync下载仓库

使用createrepo,nginx自建网络yum源_自建网络yum源_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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

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
  • 1.
  • 2.
  • 3.


五,创建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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.


六,生成GPG签名秘钥

gpg --gen-key
gpg --list-keys
gpg --armor --export 8EEB2867 > RPM-GPG-KEY-qiyu
cp RPM-GPG-KEY-qiyu /etc/pki/rpm-gpg/
  • 1.
  • 2.
  • 3.
  • 4.


七,签署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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.


八,安装nginx

yum clean all
yum makecache
yum install nginx -y
  • 1.
  • 2.
  • 3.


九,配置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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.


十,替换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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.


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