如何创建本地CentOS 7/CentOS 6/EPEL存储库同步镜像
时间:2020-02-23 14:37:58 来源:igfitidea点击:
本教程将介绍有关如何创建本地CentOS 6和CentOS 7存储库镜像的提示。当我们拥有大量系统并且想要节省带宽,加快软件包安装,网络安装和系统更新时,这将非常有用。
本指南将使用rsync从上游同步镜像。用于保存同步内容的路径是/var/mirrors /。确保调整路径到具有足够空间的文件系统,或者安装新的磁盘/分区。
同步CentOS 6和7镜像的Bash脚本:
下面的脚本将同步CentOS 6和CentOS 7镜像。用所需的目录变量替换。将脚本保存到文件,制作
#!/bin/bash if [ -f /var/lock/subsys/rsync_updates ]; then echo "Updates via rsync already running." exit 0 fi base_dir="/var/mirrors/centos/" centos_7_mirror_dir="/var/mirrors/centos/7/" centos_6_mirror_dir="/var/mirrors/centos/6/" touch /var/lock/subsys/rsync_updates if [[ -d "$centos_7_mirror_dir" && -d "$centos_6_mirror_dir" ]] ; then rsync -avSHP --delete rsync://mirror.liquidtelecom.com/centos/7/ "$centos_7_mirror_dir" && \ rsync -avSHP --delete rsync://mirror.liquidtelecom.com/centos/6/ "$centos_6_mirror_dir" && \ # sync keys rsync -avSHP --delete rsync://mirror.liquidtelecom.com/centos/RPM-GPG-KEY-CentOS-7 "$base_dir" && \ rsync -avSHP --delete rsync://mirror.liquidtelecom.com/centos/RPM-GPG-KEY-CentOS-6 "$base_dir" && \ rm -rf /var/lock/subsys/rsync_updates else echo "Directories doesn't exist" fi
Bash脚本同步Epel镜像:
#!/bin/bash if [ -f /var/lock/subsys/rsync_updates ]; then echo "Updates via rsync already running." exit 0 fi epel6_mirror_dir="/var/mirrors/epel/6/x86_64" epel7_mirror_dir="/var/mirrors/epel/7/x86_64" base_dir="/var/mirrors/epel/" touch /var/lock/subsys/rsync_updates if [[ -d "$epel6_mirror_dir" && -d "$epel7_mirror_dir" ]] ; then rsync -avSHP --delete rsync://mirror.wbs.co.za/fedora-epel/6/x86_64/"$epel6_mirror_dir" && \ rsync -avSHP --delete rsync://mirror.wbs.co.za/fedora-epel/7/x86_64/"$epel7_mirror_dir" && \ rsync -avSHP --delete rsync://mirror.wbs.co.za/fedora-epel/RPM-GPG-KEY-EPEL-7 "$base_dir" && \ rsync -avSHP --delete rsync://mirror.wbs.co.za/fedora-epel/RPM-GPG-KEY-EPEL-6 "$base_dir" && \ rm -rf /var/lock/subsys/rsync_updates else echo "Directories doesn't exist" fi if [[ $? -eq '0' ]]; then echo "" echo "Sync successful.." else echo " Syncing failed" exit 1 fi
可以在cron中运行这些cipt,以使镜像保持最新状态。
用Nginx服务镜子
同步完成后,我们可以通过与nginx一起使用来开始使用它们,
安装nginx:
yum -y install epel-release yum -y install nginx
然后添加配置文件:
cat /etc/nginx/conf.d/centos.conf server { listen 80; server_name centos.mirrors.domain.com; root /var/mirrors/centos/; location/{ autoindex on; } }
对于EPEL:
cat /etc/nginx/conf.d/epel.conf server { listen 80; server_name epel.mirrors.domain.com; root /var/mirrors/epel; location/{ autoindex on; } }
启动并启用nginx:
systemctl start nginx systemctl enable nginx
配置CentOS服务器以使用镜像
CentOS基本镜像:
cd /etc/yum.repos.d/ sudo mkdir old sudo mv CentOS* old sudo vim centos-local.repo
在下面添加内容。
[base] name=CentOS-$releasever - Base baseurl=http://centos.mirrors.domain.com/$releasever/os/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://centos.mirrors.domain.com/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates baseurl=http://centos.mirrors.domain.com/$releasever/updates/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://centos.mirrors.domain.com/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever - Extras baseurl=http://centos.mirrors.domain.com/$releasever/extras/$basearch/ enabled=0 gpgcheck=1 gpgkey=http://centos.mirrors.domain.com/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-7 [centosplus] name= CentOS-$releasever - Plus baseurl=http://centos.mirrors.domain.com/$releasever/centosplus/$basearch/ enabled=0 gpgcheck=1 gpgkey=http://centos.mirrors.domain.com/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-7
通过更新仓库Repo缓存来测试仓库是否正常运行。
sudo yum clean all sudo yum makecache fast sudo yum -v repolist
epel镜像:
$sudo vim /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://epel.mirrors.domain.com/$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://epel.mirrors.domain.com/RPM-GPG-KEY-EPEL-$releasever