
点击上方:Linux技术宅,关注我!!!

通过yum配置阿里云yum源,将下载的rpm包保留到本地(即同步下载rpm包),创建本地yum仓库,通过网站服务器(nginx或者apache,本文将采用apapche作为网站服务器)将本地yum源配置成内网可访问yum源,最后写个定时执行的脚本,自动同步阿里云yum源并下载最新的rpm软件包。
基本环境:
关闭firewalld
关闭Selinux(由于是内网的缘故,不太需要繁琐的配置防火墙和selinux)
安装createrepo

首先我们需要准备一台可以连接外网的Centos7服务器。配置阿里yum源,安装阿里云yunm源,检查其可用性。
备份原有的yum文件:
mv etc/yum.repos.d/* root/bak/yum
安装阿里云yum源文件
wget -o etc/yum.repos.d/CentOSBase.repo https://mirrors.aliyun.com/repo/Centos-7.repo
通过阿里云的yum源安装epel源
yum install -y epel-release
清除原有的yum缓存,建立新的yum源的缓存,列出可用repo
yum clean all && yum makecache && yum repolist

安装createrepo,安装apache网站服务器(httpd),准备rpm包存放路径
安装相关依赖包
yum install -y httpd yum-utils crontabs createrepo make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel
准备数据存储路径,我们要准备一个大一点的分区,阿里的yum源体积还是挺大的,而内网源就是把云yum源同步到本地。
mkdir -p data/repo
更改目录权限
chown -R apache:apache data/repo && chmod -R 755 data/repo
tips参数:
-n指定下载最新软件包
-p指定目录,指定本地的源–repoid(如果不指定就同步本地服务器所有的源),下载过程比较久
reposync -n --repoid=extras --repoid=updates --repoid=base --repoid=epel -p data/repo
等待下载完成 查看下载后的文件大小
du -sh data/repo

createrepo -po data/repo/base/ /data/repo/base/createrepo -po /data/repo/extras/ /data/repo/extras/createrepo -po /data/repo/updates/ /data/repo/updates/createrepo -po /date/repo/epel/ /data/repo/epel/

当公网yum源更新的时候,我们需要给本地的软件仓库中的软件包也一起更新
createrepo --update /data/repo/base/createrepo --update /data/repo/extras/createrepo --update /data/repo/updates/createrepo --update /data/repo/epel/
这里我们可以写一个脚本结合计划任务,让服务器自己更新软件包
脚本内容:
#!/bin/bashecho "更新软件包"yum updateecho "开始同步centos7的yum源"reposync -n --repoid=docker-ce-stable --repoid=extras --repoid=updates --repoid=base --repoid=epel --repoid=nginx -p /dataecho "同步centos7和epel、nginx的yum源完成!!!"#更新元数据createrepo --update /data/base/createrepo --update /data/nginx/createrepo --update /data/extras/createrepo --update /data/updates/createrepo --update /data/epel/createrepo --update /data/docker-ce-stable/

* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

systemctl enable --now httpd
vim /etc/httpd/conf.d/yum.conf<VirtualHost *:80>DocumentRoot /data/repo/ServerName repo.example.orgErrorLog logs/repo.example.org-error_logCustomLog logs/repo.example.org-access_log common</VirtualHost>### 创建yum默认首页index.htmlcat << EOF > /data/repo/index.html<!DOCTYPE html><html><head><meta charset="utf-8"><title>CentOS 7 镜像</title><script>document.createElement("myHero")</script><style>myHero {display: block;background-color: #ddd;padding: 10px;font-size: 20px;}</style></head><body><h1>简介</h1><hr><p>CentOS,是基于 Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本,是一个稳定,可预测,可管理和可复制的免费企业级计算平台。</p><hr><br><br><h1>CentOS 7 配置内部YUM源</h1><br><h2>1、备份</h2><myHero>mv /etc/yum.repos.d/* /opt/yum/</myHero><br><h2>2、下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ </h2><myHero>curl -o /etc/yum.repos.d/CentOS-Base.repo http://repo.example.org/CentOS-Base.repo</myHero><br><h2>3、运行 yum makecache 生成缓存</h2><br><h2>4、运行 yum repolist 查看已经生成缓存</h2><br><br></body></html>EOF
systemctl restart httpd

cat << EOF > /data/repo/CentOS-Base.repo[base]name=CentOS-$releasever - Base - repo.example.orgfailovermethod=prioritybaseurl=http://repo.example.org/base/enable=1gpgcheck=0#released updates[updates]name=CentOS-$releasever - Updates - repo.example.orgfailovermethod=prioritybaseurl=http://repo.example.org/updates/enable=1gpgcheck=0#additional packages that may be useful[extras]name=CentOS-$releasever - Extras - repo.example.orgfailovermethod=prioritybaseurl=http://repo.example.org/extras/enable=1gpgcheck=0#additional packages that may be useful[epel]name=CentOS-$releasever - Epel - repo.example.orgfailovermethod=prioritybaseurl=http://repo.example.org/epel/enable=1gpgcheck=0EOF

编写一下主机的hosts文件,将repo.example.org 跟你配置的yum本地源的服务器IP解析配置一下

配置yum客户端
curl -o /etc/yum.repos.d/CentOS-Base.repo http://repo.example/CentOS-Base.repo
版权声明:本文为CSDN博主「河越柯衍」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37696855/article/details/118115012

分享、在看与点赞
只要你点,我们就是胖友





