内网YUM源搭建手册(Internal Network yum Source Construction Manual)
内网YUM源搭建手册
一、内网yum源服务器
系统版本
[root@yumsvr ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
需要准备一台可以连接外网的Centos7配置阿里yum源,安装阿里云yunm源,检查其可用性。
新建一个目录,将原来默认的repo备份
[root@yumsvr yum.repos.d]# mkdir /old
[root@yumsvr yum.repos.d]# mv *.repo old
二、安装下载外网阿里云YUM源
安装阿里云YUM文件
wget -o /etc/yum.repos.d/CentOSBase.repo https://mirrors.aliyun.com/repo/Centos-7.repo
安装epel源
yum install -y epel-release
清除原有的yum缓存,建立新的yum源的缓存,列出可用repo
yum clean all && yum makecache && yum repolist
安装Nginx服务
yum install -y nginx yum-utils crontabs createrepo reposync make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel
准备数据存储路径,内网源就是把云yum源同步到本地。过程较久,慢慢等##
本文是将云上的rpm包 下载到此目录,请注意考虑/目录大小
reposync -r base
reposync -r extras
reposync -r updates
reposync -r epel
三、创建仓库索引
创建本地软件源索引
createrepo -po /etc/yum.repos.d/base/ /etc/yum.repos.d/base/
createrepo -po /etc/yum.repos.d/extras/ /etc/yum.repos.d/extras/
createrepo -po /etc/yum.repos.d/updates/ /etc/yum.repos.d/updates/
createrepo -po /etc/yum.repos.d/epel/ /etc/yum.repos.d/epel/
四、自动更新数据源
目的:当公网yum源更新的时候,我们需要给本地的软件仓库中的软件包也一起更新
createrepo --update /etc/yum.repos.d/base/
createrepo --update /etc/yum.repos.d/extras/
createrepo --update /etc/yum.repos.d/updates/
createrepo --update /etc/yum.repos.d/epel/
此处需要写一个crontab 定时任务脚本,定期后台自动更新最新的rpm包
vi update.sh
#!/bin/bash
echo "###Update Packages###"
yum update -y
echo "###resync centos7 yum repo###"
reposync -r --repoid=extras --repoid=updates --repoid=base --repoid=epel -p /etc/yum.repos.d
echo "同步centos7yum源完成!"
echo "###开始更新元数据###"
createrepo --update /etc/yum.repos.d/base/
echo "更新base元数据完成···"
createrepo --update /etc/yum.repos.d/extras/
echo "更新extras元数据完成···"
createrepo --update /etc/yum.repos.d/updates/
echo "更新updates元数据完成···"
createrepo --update /etc/yum.repos.d/epel/
echo "更新epel元数据完成···"
echo "###update successful###"
crontab -e
* * * * * /usr/bin/sh /etc/yum.repos.d/update.sh >> /etc/yum.repos.d/updatelog.txt
!!! 如果是内网需要将这个目录挪到内网机器上去 !!!
五、启动并配置web服务器
[root@yumsvr ~]# vi /etc/nginx/conf.d/yum.conf
新建Nginx配置文件,allow 和deny 自己看情况
server {
listen 80;
# server_name yumsvr;
location /
{
root /etc/yum.repos.d;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location /nginx_status
{
stub_status on;
access_log off;
# allow 172.21.0.0/16;
# deny all;
}
}
重启Nginx服务
systemctl resntart nginx
systemctl enable nginx
六、编写yum本地源客户端的yum配置文件
cd /etc/yum.repos.d
vi CentOS-Internal.repo
# CentOS-Internal.repo
[base-internal]
name=CentOS-$releasever - Base - http://172.21.X.X
baseurl=http://172.21.X.X/base
gpgcheck=0
enable=1
#released updates
[updates-internal]
name=CentOS-$releasever - updates - http://172.21.X.X
baseurl=http://172.21.X.X/updates
gpgcheck=0
enable=1
#released extras
[extras-internal]
name=CentOS-$releasever - extras - http://172.21.X.X
baseurl=http://172.21.X.X/extras
gpgcheck=0
enable=1
[epel-internal]
name=CentOS-$releasever - epel - http://172.21.X.X
baseurl=http://172.21.X.X/epel
gpgcheck=0
enable=1
七、验证
验证nginx 是否可以正常打开访问
web 访问
其他客户端使用此源命令:
cd /etc/yum.repos.d
yum clean all
wget http://172.21.X.X/CentOS-Internal.repoyum repolist