当前位置:首页 > 系统 > CentOS7 搭建本地yum和EPEL仓库

CentOS7 搭建本地yum和EPEL仓库

系统3年前 (2020-01-14)

CentOS7 搭建本地yum和EPEL仓库

CentOS7下搭建CentOS7、EPEL的局域网下使用的本地YUM仓库,因为在生产环境中由于安全的限制,某些服务器不允许访问公网。

如果需要使用yum安装包或update只能通过在本地自建yum源来解决。

yum源可以通过http、ftp、nfs等方式去访问使用,不过由于nfs由于自身的安全性问题并不推荐用。而ftp有主动/被动模式的问题,配置不当也会造成有无法访问。所以推荐使用http web方式提供yum源


安装nginx

rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm


设置host

echo "192.168.0.1 server1" >>/etc/hosts
tail -1 /etc/hosts


修改nginx配置

vim /etc/nginx/conf.d/repos.conf 

添加
server {
  listen 80;
  server_name server1;	
  root /u01/repos;
  location / {
  autoindex on;
  autoindex_exact_size off;
  autoindex_localtime on;
        }
		
##EPEL virtual directory
  location /epel/ {
    alias /u01/epel/;
  }
}


开启服务

systemctl start nginx && systemctl enable nginx
firewall-cmd --zone=public --permanent --add-service={http,https}
firewall-cmd --reload
reboot
curl -s 127.0.0.1


安装yum组件

yum-utils提供reposync服务,可以将远程的源同步到本地。createrepo可以将rpm包创建为Yum仓库,生成repodata目录

yum install -y yum-utils createrepo


创建文件保存目录

mkdir -p /u01/repos/{base,centosplus,extras,updates}
mkdir -p /u01/epel/


备份系统自带源

cd /etc/yum.repos.d
mkdir -p backuprepo && mv * backuprepo


修改本地源改为阿里云

wget -O CentOS-aliyun7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo


查看本地存在的镜像

yum repolist


同步镜像到本地http根目录

reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=epel --newest-only --download-metadata --download_path=/u01/epel/


创建rpm包目录索引信息

createrepo -pdo /u01/repos/base /u01/repos/base
createrepo -pdo /u01/repos/centosplus /u01/repos/centosplus
createrepo -pdo /u01/repos/extras /u01/repos/extras
createrepo -pdo /u01/repos/updates /u01/repos/updates
createrepo -pdo /u01/epel /u01/epel/


创建定时同步任务

vim /etc/cron.daily/localrepos-update

添加
# Sync CentOS and EPEL repos
reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/u01/repos/
reposync -g -l -d -m --repoid=epel --newest-only --download-metadata --download_path=/u01/epel/

# Build CentOS repo metadata
createrepo --update --workers=4 /u01/repos/base/
createrepo --update --workers=4 /u01/repos/centosplus/
createrepo --update --workers=4 /u01/repos/extras/
createrepo --update --workers=4 /u01/repos/updates
createrepo --update --workers=4 /u01/epel/

添加权限

chmod 755 /etc/cron.daily/localrepos-update


局域网其他服务器设置

备份本地源

echo "192.168.0.1 server1" >>/etc/hosts
cd /etc/yum.repos.d
mkdir -p backuprepo && mv * backuprepo


修改为新源

vim /etc/yum.repos.d/local.repo
添加
[base]
name=CentOS-7-base.local
baseurl=http://server1/base
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centosplus]
name=Centos-7-plus.local
baseurl=http://server1/centosplus/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
[updates]
name=CentOS-7-updates.local
baseurl=http://server1/updates
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
[extras]
name=CentOS-7-extras.local
baseurl=http://server1/extras
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[epel]
name=CentOS-7-epel.local
baseurl=http://server1/epel
enabled=1
gpgcheck=0


测试

yum clean all
yum repolist all
yum install -y yum-plugin-fastestmirror


本站所有文章均可随意转载,转载时请保留原文链接及作者。

本文链接:https://www.vos.cn/os/387.html

相关文章

解压出现gzip: stdin: not in gzip format

解压出现gzip: stdin: not in gzip format

今天解压quagga的tar包的时候一直提示gzip: stdin: not in gzip format的错误查看文件也是tar文件没问题最后试了下去掉z参数就好了tar -xvf&nbs...

解决SecureCRT连接linux无配色

解决SecureCRT连接linux无配色

SecureCRT默认ssh连接linux是无配色的,看起来很难受左侧选中需要调整的会话名称->右键->Properties ->Session Options -> Term...

CentOS7安装cacti

CentOS7安装cacti

网上有一种叫cactiez的集成版本,rrd组件一直有问题,版本也太老,于是就想着重新搭建一个环境试试配置环境关闭Selinux vi /etc/selinux/config 将SELI...

利用LVM特性对EVE-NG硬盘分区扩容

利用LVM特性对EVE-NG硬盘分区扩容

下载的EVE-NG镜像中,存放模拟器镜像的分区太小了,上传几个cisco和juniper的模拟器就快满了,所以需要使用lvm特性对ubuntu server的硬盘分区进行扩容,首先先将eve-ng虚拟...

CentOS7 软RAID配置

CentOS7 软RAID配置

虚拟机添加4块新硬盘,形成5盘环境,做Linux软RAID磁盘阵列准备环境搭建添加硬件选择硬盘默认选择SCSI创建新虚拟磁盘容量默认20G,存储为单个文件加默认安装系统的,一共5个fdisk -l查看...

CentOS7 NFS配置

CentOS7 NFS配置

网络文件系统(Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区...