在本文中,我们将探讨如何通过使用Rsync来创建CentOS 8或7操作系统的本地存储库(托管在Nginx Web服务器上),通过具有本地cron作业来创建本地CentOS 8镜像,该作业会定期检查上游存储库中的更新,并相应地在本地进行更新。通过创建CentOS 8存储库镜像,您可以配置CentOS 8服务器来访问软件包,而无需访问Internet,通过从外部来源提取RPM软件包,可以提高安全性并减少带宽消耗量,在此设置中,我们将使用CentOS 7或CentOS 8服务器执行操作,您应该具有一个外部存储,该存储应具有足够的容量来托管存储库软件包和潜在的增长。
步骤1:安装Nginx Web服务器 由于Nginx用作首选的Web服务器,因此将其安装在CentOS系统中。 CentOS 8: sudo dnf -y install @nginx CentOS 7: sudo yum -y install epel-release sudo yum -y install nginx 安装后,启动并启用该服务: sudo systemctl enable --now nginx 确认服务正在运行: $ systemctl status nginx
在防火墙中打开http端口: sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload
步骤2:创建存储库目录 我的服务器中有一个辅助磁盘,用于存储存储库数据–100GB的/dev/vdc: $ lsblk
参考:用lsblk在Linux上找到硬盘信息:硬盘标签,找到分区名称,查找UUID信息。 我将在此块设备上创建一个分区,并将其安装在/data目录下,首先,在其上创建一个分区: sudo parted -s -a optimal -- /dev/vdc mklabel gpt sudo parted -s -a optimal -- /dev/vdc mkpart primary 0% 100% sudo parted -s -- /dev/vdc align-check optimal 1 在其中创建物理卷和卷组: $ sudo pvcreate /dev/vdc1 Physical volume "/dev/vdc1" successfully created. $ sudo vgcreate data /dev/vdc1 Volume group "data" successfully created 创建逻辑卷: $ sudo lvcreate -n repos -l+100%FREE data Logical volume "repos" created. 创建一个文件系统: $ sudo mkfs.xfs /dev/mapper/data-repos
创建用于挂载逻辑卷的目录: sudo mkdir /data 创建一个挂载点: $ sudo vim /etc/fstab /dev/mapper/data-repos /data xfs defaults 0 0 安装它: sudo mount -a 确认: $ df -hT /data
为CentOS 8存储库数据创建基本目录: sudo mkdir -p /data/repos/centos/8/ 确认所有目录均已创建: $ tree /data/
步骤3:建立储存库同步处理指令码 现在,我们创建一个脚本,该脚本将用于将内容从远程存储库同步到本地系统: $ sudo vim /etc/centos8_reposync.sh 粘贴下面的数据: #!/bin/bash repos_base_dir="/data/repos/centos/8/" # Start sync if base repo directory exist if [[ -d "$repos_base_dir" ]] ; then # Start Sync rsync -avSHP --delete rsync://mirror.liquidtelecom.com/centos/8/ "$repos_base_dir" # Download CentOS 8 repository key wget -P $repos_base_dir wget https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official 使脚本可执行: sudo chmod +x /etc/centos8_reposync.sh 安装Tmux并启动第一次执行: $ sudo yum -y install tmux $ tmux $ sudo /etc/centos8_reposync.sh 该脚本应开始运行:
应该创建许多目录: $ ls -1 /data/repos/centos/8/ AppStream BaseOS centosplus COMPOSE_ID cr extras fasttrack isos PowerTools 等待初始脚本完成运行,然后创建cron作业以进行每周同步:
我将同步设置为在每个星期日的晚上6点运行: $ sudo crontab -e 00 18 * * 7 /etc/centos8_reposync.sh
步骤4:配置Nginx 创建Nginx配置文件以服务存储库内容: $ sudo vim /etc/nginx/conf.d/centos.conf server { listen 80; server_name repos.example.com; root /data/repos/; location / { autoindex on; } } 其中repos.example.com是用于访问存储库的域名。 配置SELinux标签: sudo semanage fcontext -a -t httpd_sys_content_t "/data/repos(/.*)?" sudo restorecon -Rv /data/repos 更改后重新启动nginx: sudo nginx -t sudo systemctl restart nginx 打开服务器URL确认它正在运行:
步骤5:配置CentOS 8客户端计算机 现在我们的镜像已经准备好了,我们可以配置CentOS 8机器以使用本地存储库。 首先备份当前存储库: cd /etc/yum.repos.d/ sudo mkdir old-repos sudo mv *.repo old-repos 创建一个新的存储库文件: sudo vim local.repo 在下面进行修改并将其粘贴: [BaseOS] name=CentOS-$releasever - Base baseurl=http://repos.computingforgeeks.com/centos/$releasever/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=http://repos.computingforgeeks.com/centos/$releasever/RPM-GPG-KEY-CentOS-Official [AppStream] name=CentOS-$releasever - AppStream baseurl=http://repos.computingforgeeks.com/centos/$releasever/AppStream/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=http://repos.computingforgeeks.com/centos/$releasever/RPM-GPG-KEY-CentOS-Official [centosplus] name=CentOS-$releasever - Plus baseurl=http://repos.computingforgeeks.com/centos/$releasever/centosplus/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=http://repos.computingforgeeks.com/centos/$releasever/RPM-GPG-KEY-CentOS-Official [extras] name=CentOS-$releasever - Extras baseurl=http://repos.computingforgeeks.com/centos/$releasever/extras/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=http://repos.computingforgeeks.com/centos/$releasever/RPM-GPG-KEY-CentOS-Official [PowerTools] name=CentOS-$releasever - PowerTools baseurl=http://repos.computingforgeeks.com/centos/$releasever/PowerTools/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=http://repos.computingforgeeks.com/centos/$releasever/RPM-GPG-KEY-CentOS-Official [cr] name=CentOS-$releasever - cr baseurl=http://repos.computingforgeeks.com/centos/$releasever/cr/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=http://repos.computingforgeeks.com/centos/$releasever/RPM-GPG-KEY-CentOS-Official [fasttrack] name=CentOS-$releasever - fasttrack baseurl=http://repos.computingforgeeks.com/centos/$releasever/fasttrack/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=http://repos.computingforgeeks.com/centos/$releasever/RPM-GPG-KEY-CentOS-Official 注: repos.computingforgeeks.com是用于repos访问的域。 清理当前回购缓存: sudo yum clean all 更新: $ sudo yum makecache
列出存储库: $ sudo yum repolist
从中运行系统更新: sudo yum -y update
步骤6:启用禁用的存储库 默认情况下,某些存储库是禁用的,要启用它们,请安装yum-utils软件包: sudo yum install yum-utils 要激活存储库,请使用以下命令: sudo yum-config-manager --enable reponame 以下是启用PowerTools和centosplus存储库的示例: sudo yum-config-manager --enable PowerTools sudo yum-config-manager --enable centosplus 确认: $ sudo yum repolist
要禁用,请用–disable代替–enable。
结语 通过上面的操作步骤,你现在可以使用本地CentOS 8系统镜像了。
相关主题 |