nginx+rsync实现本地yum源以及公网yum源

1.nginx提供目录浏览功能

[root@kirin ~]# cat /etc/nginx/conf.d/yum.conf
server {
listen 80;
listen [::]:80;
server_name mirrors.kirin7.com;
location / {
root /repo;
autoindex on; #开启目录浏览功能
}

2.从公网的仓库同步软件包至本地,但需要注意,如果全同步,会特别占用空间,所以我们可以将不需要的软件包进行过滤。

rsync同步命令(建议将其加入定时任务)

#1.同步centos7的基础源
rsync -zaP --exclude-from /repo/exclude_7.txt rsync://rsync.mirrors.ustc.edu.cn/centos/7.6.1810/ /repo/centos
#2.同步centos7的epel源
rsync -zaP --exclude-from /repo/exclude_7_epel.txt rsync://rsync.mirrors.ustc.edu.cn/epel/7/ /repo/epel
#centos7排除的文件(保留os和extras)
[root@oldboyedu ~]# cat /repo/exclude_7.txt
atomic/
centosplus/
cloud/
configmanagement/
cr/
dotnet/
fasttrack/
isos/
nfv/
opstools/
paas/
rt/
sclo/
storage/
virt/
debug/
drpms/
#centos7_epel排除的文件(保留x86_64)
[root@kirin ~]# cat /repo/exclude_7_epel.txt
SRPMS/
aarch64/
ppc64/
ppc64le/
state

3.客户端配置本地yum仓库

[centos]
name = Local Base Repository
baseurl = http://mirrors.kirin7.com/centos
enable = 1
gpgcheck = 0
[epel]
name = Local Epel Repository
baseurl = http://mirrors.kirin7.com/epel
enable = 1
gpgcheck = 0

4.扩展:如果想为下游提供同步服务,我们可以使用rsync协议将目录共享出去,让其他人也可以同步(一般玩不起,毕竟没钱)。

[root@kirin ~]# cat /etc/rsyncd.conf
uid = nginx
gid = nginx
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = true #只提供同步,所以只读即可
list = true #允许查看列表,认证的什么的不需要配置
hosts allow = 0.0.0.0/0 #允许任何人同步
##########提供同步的模块
[centos]
path = /repo/centos
[epel]
path = /repo/epel
posted @   kirin(麒麟)  阅读(261)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
Δ
点击右上角即可分享
微信分享提示