概述

由于内网有大量机器不能访问公网,安装软件比较费劲,那么,如何让这些机器也能yum快速安装最新的软件呢?搭建一个本地镜像源能解决这样的问题,而如何让本地镜像源仓库的软件保持最新,就需要一个神器–reposync。

reposync用于将远端镜像源同步到本地。

语法说明

1
/usr/bin/reposync [options]

参数说明

参数 说明
-c 要使用的配置文件(默认为/etc/yum.conf)
-d 删除存储库中不再存在的本地包
-r REPOID, –repoid=REPOID 指定repo id来查询,可以指定多个次(默认全部启用)
-p DESTDIR, –download_path=DESTDIR 下载包的路径:默认为当前目录
-g 删除未通过GPG签名检查的软件包
-u 只列出要下载的URL,不要下载
-n 仅下载per-repo的最新软件包
-l 启用yum插件支持

部署

  • 系统:CentOS Linux release 7.9.2009 (Core)
  • 主机IP:192.168.70.84

配置阿里云源

1
2
3
4
5
6
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-Epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Epel.repo
yum makecache

同步源

创建文件夹并同步

1
2
mkdir -p /data/centos/7/64bit
/usr/bin/reposync -np /data/centos/7/64bit/

建仓

1
2
3
4
createrepo -p /data/centos/7/64bit/base/
createrepo -p /data/centos/7/64bit/epel/
createrepo -p /data/centos/7/64bit/updates/
createrepo -p /data/centos/7/64bit/extras/

Nginx配置

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80;
server_name localhost;

access_log /var/log/nginx/repo.access.log main;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
location / {
root /data;
index index.html index.htm;
}
}

重启Nginx:

1
systemctl reload nginx

打开http://192.168.70.84即可看到镜像仓库中的软件。

配置定时计划

1
0 1 * * * /usr/bin/reposync -np  /data/centos/7/64bit/

yum配置

/etc/yum.repos.d/CentOS-Base.repo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[base]
name=CentOS-Base(GDS)
baseurl=http://192.168.70.84/centos/7/64bit/base
path=/
enabled=1
gpgcheck=0

[updates]
name=CentOS-Updates(GDS)
baseurl=http://192.168.70.84/centos/7/64bit/updates
path=/
enabled=1
gpgcheck=0

[extras]
name=CentOS-Extras(GDS)
baseurl=http://192.168.70.84/centos/7/64bit/extras
path=/
enabled=1

更新缓存

1
2
3
4
# 导入gpg公钥
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 更新缓存
yum makecache