1、 演示环境:
IP |
OS |
Nginx版本 |
Rsync版本 |
清华大学开源软件镜像站 |
192.168.1.146 |
CentOS 6.9 x86_64 |
1.10.2 |
3.0.6 |
https://mirrors.tuna.tsinghua.edu.cn/ |
备注:同步的上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。国内的很多开源镜像站都不支持rsync,这里以清华大学开源软件镜像站为例。
2、 安装前准备:
(1)服务器时间校对
(2)配置epel源
3、 安装配置Nginx:
(1)安装Nginx:# yum -y install Nginx
(2)创建软件包存放目录:# mkdir -pv /mirror/{centosplus,extras,os,updates,epel}
(3)配置Nginx:
# cd /etc/Nginx/conf.d
# cp default.conf default.conf.bak
# vim default.conf
@H_301_192@server {
@H_301_192@listen 80;
@H_301_192@server_name localhost;
root /mirror/;
@H_301_192@location / {
@H_301_192@autoindex on;
@H_301_192@autoindex_exact_size off;
@H_301_192@autoindex_localtime on;
@H_301_192@}
@H_301_192@}
(4)检查Nginx配置文件语法,并启动# Nginx -t # service Nginx start
(5)检查Nginx监听的80端口:# ss -tnlp | grep :80 # pidof Nginx
(6)浏览器中访问站点:192.168.1.146
4、 同步清华大学开源软件镜像站:
(1)安装相关软件包:# yum -y install rsync createrepo
(2)查看每个源下的软件包:
# rsync --list-only rsync://mirrors.tuna.tsinghua.edu.cn/centos/6.9/centosplus/x86_64/Packages/
# rsync --list-only rsync://mirrors.tuna.tsinghua.edu.cn/centos/6.9/extras/x86_64/Packages/
# rsync --list-only rsync://mirrors.tuna.tsinghua.edu.cn/centos/6.9/os/x86_64/Packages/
# rsync --list-only rsync://mirrors.tuna.tsinghua.edu.cn/centos/6.9/updates/x86_64/Packages/
# rsync -r --list-only rsync://mirrors.tuna.tsinghua.edu.cn/epel/6Server/x86_64/Packages/
(3)编写同步脚本:
# mkdir -pv /scripts
# vim /scripts/yum_rsync.sh
@H_301_192@#!/bin/bash
@H_301_192@/usr/bin/rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/centos/6.9/centosplus/x86_64/Packages/ /mirror/centosplus && /usr/bin/createrepo /mirror/centosplus
@H_301_192@/usr/bin/rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/centos/6.9/extras/x86_64/Packages/ /mirror/extras && /usr/bin/createrepo /mirror/extras
@H_301_192@/usr/bin/rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/centos/6.9/os/x86_64/Packages/ /mirror/os && /usr/bin/createrepo /mirror/os
@H_301_192@/usr/bin/rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/centos/6.9/updates/x86_64/Packages/ /mirror/updates && /usr/bin/createrepo /mirror/updates
@H_301_192@/usr/bin/rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/epel/6Server/x86_64/Packages/ /mirror/epel && /usr/bin/createrepo /mirror/epel
# chmod +x /scripts/yum_rsync.sh
(4)编写定时任务:每天凌晨12点开始执行同步脚本
# crontab -e --> 0 0 * * * /scripts/yum_rsync.sh
备注:同步耗时较长,且保证磁盘有足够大的容量
同步时可以通过# top命令查看rsync进程:
同步前目录结构及磁盘容量:
同步后目录结构及磁盘容量:
5、 其它服务器(例如:192.168.1.145)配置自建的yum源进行软件包下载安装测试:
(1)创建yum源的repo配置文件:
# cd /etc/yum.repos.d
# mv CentOS-Base.repo CentOS-Base.repo.bak
# vim CentOS-Base.repo
@H_301_192@[base]
@H_301_192@name=Marion - CentOS-$releasever - Base
@H_301_192@baseurl=http://192.168.1.146/os
@H_301_192@enabled=1
@H_301_192@gpgcheck=0
@H_301_192@[centosplus]
@H_301_192@name=Marion - CentOS-$releasever - Centosplus
@H_301_192@baseurl=http://192.168.1.146/centosplus
@H_301_192@[extras]
@H_301_192@name=Marion - CentOS-$releasever - Extras
@H_301_192@baseurl=http://192.168.1.146/extras
@H_301_192@[updates]
@H_301_192@name=Marion - CentOS-$releasever - Updates
@H_301_192@baseurl=http://192.168.1.146/updates
@H_301_192@gpgcheck=0
# vim epel.repo
@H_301_192@[epel]
@H_301_192@name=Marion - CentOS-$releasever - EPEL
@H_301_192@baseurl=http://192.168.1.146/epel
@H_301_192@gpgcheck=0
(2)清除当前yum缓存:# yum clean all
(3)重新生成# yum makecache
(4)显示可用的yum源:# yum repolist
(5)测试base源:# yum -y install httpd # yum info httpd