搭建本地yum仓库
前言
当我们使用yum目录安装包时,yum会查到/etc/yum.repos.d/*.repo文件获取包下载地址,默认CentOS源指向国外软件包仓库,当然这会影响我们的下载速度。所以一般在主机初始化时,我们会重写repo文件改为国内源,如阿里云源,但是在大批主机同时安装软件或者某个时间段,国内源下载速度不稳定。因此,我们组建公司内部yum源,将国内源同步到公司内部yum仓库,其余生产主机repo文件全部指向这个仓库,整个下载过程在内网进行,大大提高下载速度。
一、基本镜像的yum仓库
将系统安装盘挂载到文件系统,挂载后会有Package目录,里面保存了大量的rpm包。然后配置repo指向本地挂载文件系统来实现软件包管理。
- 挂载光盘(镜像)到文件系统
mount -t iso9660 /dev/cdrom /mnt/cdrom # 将光盘挂载到/mnt/cdrom目录
mount -o loop -t iso9660 /path/*.iso /mnt # 将iso镜像文件挂载到/mnt目录
- 开机挂载iso
vim /etc/fstab
/path/*.iso /mnt iso9660 loop 0 0
- 查看挂载
mount -a
df -Th 查看挂载
- 重写repo文件
cat local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
yum clean all && yum makecache
二、搭建内网yun仓库
- 关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
sed -ri '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
setenforce 0
- 安装应用
yum -y install ntpdate vsftpd ftp wget
yum -y install createrepo yum-utils
yumdownloader:下载rpm包所有依赖,但不安装
yumdownloader --resolve --destdir /tmp/ansible ansible
yum install --downloadonly --downloaddir=/tmp/ vsftpd
yum reinstall --downloadonly --downloaddir=/tmp/ vsftpd
- 时钟同步
/usr/sbin/ntpdate ntp1.aliyun.com
- 更换阿里源
gzip /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-epel.repo
- 创建同步目录
mkdir -p /var/ftp/centos/7/x86_64/ # ftp
mkdir /var/www/html/centos6 # http
- 同步Yum源包
reposync -p /var/ftp/centos/7/x86_64/ # 将aliyun repo的rpm包同步到该目录
- 创建Yum仓库
createrepo -p /var/ftp/centos/7/x86_64/base/Packages
createrepo -p /var/ftp/centos/7/x86_64/updates/Packages
createrepo -p /var/ftp/centos/7/x86_64/extras/Packages
createrepo -p /var/ftp/centos/7/x86_64/epel/Packages
- 创建同步计划任务
echo "0 1 * * 6 root /usr/bin/reposync -np /var/ftp/centos/7/x86_64/" >> /etc/crontab
- 创建CentOS-Base.repo文件
vim CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - [mirrors.aliyun.com]
failovermethod=priority
baseurl=ftp://192.168.122.128/centos/7/x86_64/base/Packages
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates - [mirrors.aliyun.com]
failovermethod=priority
baseurl=ftp://192.168.122.128/centos/7/x86_64/updates/Packages
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras - [mirrors.aliyun.com]
failovermethod=priority
baseurl=ftp://192.168.122.128/centos/7/x86_64/extras/Packages
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
- 创建epel.repo文件
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=ftp://192.168.122.128/centos/7/x86_64/epel/Packages
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7