内网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 `