使用rsync搭建内网yum源服务器

本文介绍了如何通过rsync和nginx制作内网yum源。

创建目录

新建目录用于存放镜像文件

1
2
mkdir /data/mirrors/centos/7 -p
mkdir /data/mirrors/epel/7 -p

安装软件

安装必要的软件

1
yum install rsync createrepo yum-utils wget screen -y

安装Nginx

如果你并没有特殊服务需要编译nginx,那么通过yum安装是最方便的

1
yum install nginx -y

配置Nginx

安装完毕后修改/etc/nginx/nginx.conf,将server段修改为以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80;
server_name liangfuwang;
root /data/mirrors;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}

请注意第三行(高亮行)中的liangfu.wang这个域名,如果你只想通过IP进行访问,请删除此行。如果需要通过域名访问,那么请修改为你的域名。

启动

配置完成后请通过以下命令启动或重新加载nginx:

1
2
3
4
5
# 启动
nginx

#重新加载
nginx -s reload

最后就可以通过IP或域名尝试访问,Nginx环境就准备就绪了。
yum.png

rsync

编写同步脚本rsync.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#同步base源
rsync -av rsync://mirrors.ustc.edu.cn/centos/7/os /data/mirrors/centos/7

#同步updates源
rsync -av rsync://mirrors.ustc.edu.cn/centos/7/updates /data/mirrors/centos/7

#同步extras源
rsync -av rsync://mirrors.ustc.edu.cn/centos/7/extras /data/mirrors/centos/7

#同步epel源
rsync -av rsync://mirrors.ustc.edu.cn/epel/7/x86_64 /data/mirrors/epel/7

#简单同步一下7.1.1503分支信息
rsync -av rsync://mirrors.ustc.edu.cn/centos/7.1.1503 /data/mirrors/centos/
#简单同步一下7.2.1511分支信息
rsync -av rsync://mirrors.ustc.edu.cn/centos/7.2.1511 /data/mirrors/centos/
#简单同步一下7.3.1611分支信息
rsync -av rsync://mirrors.ustc.edu.cn/centos/7.3.1611 /data/mirrors/centos/
#简单同步一下7.4.1708分支信息
rsync -av rsync://mirrors.ustc.edu.cn/centos/7.4.1708 /data/mirrors/centos/
#简单同步一下7.5.1804分支信息
rsync -av rsync://mirrors.ustc.edu.cn/centos/7.5.1804 /data/mirrors/centos/
#简单同步一下7.6.1810分支信息
rsync -av rsync://mirrors.ustc.edu.cn/centos/7.6.1810 /data/mirrors/centos/
1
chmod +x rsync.sh

开始同步,差不多40GB左右,需要很长一段时间的,最好挂着screen,不然窗口超时断掉就尴尬了。

1
2
3
4
5
# 新建一个screen会话
screen -S rsync

# 执行脚本,开始同步
sh rsync.sh

客户端配置

备份原来的repo文件

1
2
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/

创建内网源的/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
20
21
22
23
24
25
26
27
28
[base]
name=CentOS-$releasever - Base
baseurl=http://192.168.5.131/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://192.168.5.131/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://192.168.5.131/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://192.168.5.131/centos/7/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

创建内网源的/etc/yum.repos.d/epel.repo文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://192.168.5.131/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://192.168.5.131/epel/7/$basearch/debug
ailovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://192.168.5.131/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

清除源先的缓存再建立缓存

1
yum clean all && yum makecache

验证安装

1
yum install tree -y

参考链接