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

CentOS7 搭建本地yum和EPEL仓库

系统2年前 (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

相关文章

Fedora 24 Grub2修复Win 7启动

Fedora 24 Grub2修复Win 7启动

首先查看Win7在磁盘中的UUID号,看到/dev/sda1中的,复制下来在/boot/grub2/grub.cfg添加以下语句osprpber-chain-添加UUID...

修复升级EVE-NG后无法正常打开问题

修复升级EVE-NG后无法正常打开问题

升级流程Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.9.40-eve-ng-ukms+ x86_64) * Documentation:  ...

解决SecureCRT连接linux无配色

解决SecureCRT连接linux无配色

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

CentOS7安装PureFTP和vsFTP使用加密连接

CentOS7安装PureFTP和vsFTP使用加密连接

LNMP环境搭建好后,日后需要管理webroot路径下的文件,采用加密方式的FTP方式比较简单也安全安装PureFTPyum install pure-ftpd配置PureFTPv...

CentOS7 NFS配置

CentOS7 NFS配置

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

CentOS7 iSCSI配置

CentOS7 iSCSI配置

先用5块磁盘组成RAID 6,其中4盘做RAID,1盘做热备,并在组建的阵列提供iSCSI服务yum install mdadm mdadm -Cv /dev...