1、系统环境

[root@yum-server ~]# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core)
[root@yum-server ~]# uname -r
3.10.0-514.el7.x86_64
[root@yum-server ~]# ip a |awk 'NR==9{print $2}'|awk -F '/' '{print $1}'
10.0.7.190
[root@yum-server ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0            11:0    1   10G  0 rom  /mnt
sr1            11:1    1  484K  0 rom  
vda           253:0    0   20G  0 disk 
└─vda1        253:1    0   20G  0 part /
vdb           253:16   0  500G  0 disk 
└─yumvg-yumlv 252:0    0  500G  0 lvm  /yum  //yum仓库存储位置,一般实际生产中建议容量设置较大

2、配置环境

由于网络环境复杂,yum源服务有多种来源

base源epel源zabbix源grafana源docker源k8s源

源类型

版本

repo name

repo id

来源

使用者

base源-ISO

Centos-7

Centos-7-media.repo

Centos-7-media

CentOS-7-x86_64-Everything-1810.iso

服务端

media.repo

c7-media

http://10.0.7.190/repository/c7

客户端

base源-云

Centos-7

Centos-base-7.repo

Centos-base-7

http://mirrors.aliyun.com/repo/Centos-7.repo

服务端

base-7.repo

base-7

http://10.0.7.190/repository/base-7

客户端

Centos-6

Centos-base-6.repo

Centos-base-6

http://mirrors.aliyun.com/repo/Centos-6.repo

服务端

base-6.repo

base-6

http://10.0.7.190/repository/base-6

客户端

epel源

Centos-7

Centos-epel-7.repo

epel-7/7/x86_64

http://mirrors.aliyun.com/repo/epel-7.repo

服务端

epel-7.repo

epel-7

http://10.0.7.190/repository/epel-7

客户端

Centos-6

Centos-epel-6.repo

epel-6/6/x86_64

http://mirrors.aliyun.com/repo/epel-6.repo

服务端

epel-6.repo

epel-6

http://10.0.7.190/repository/epel-6

客户端

zabbix源

Centos-7

Centos-zabbix-7.repo

zabbix-7/x86_64

http://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/

服务端

zabbix-7.repo

zabbix-7

http://10.0.7.190/repository/zabbix-7

客户端

Centos-6

Centos-zabbix-6.repo

zabbix-6/x86_64

http://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/6/x86_64/

服务端

epel-6.repo

epel-6

http://10.0.7.190/repository/epel-6

客户端

grafana源

Centos-6/7

Centos-grafana.repo

grafana

https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm

服务端

grafana.repo

grafana

http://10.0.7.190/repository/grafana

客户端

docker源

Centos-7

docker-ce-stable.repo

Docker CE Stable

https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/

服务端

docker-ce.repo

docker-ce

http://10.0.7.190/repository/docker-ce-stable

客户端

k8s源

Centos-7

k8s-7.repo

K8S

https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

服务端

k8s.repo

k8s

http://10.0.7.190/repository/k8s

客户端

应用程序

作用

替代程序

httpd

baseurl

nginx/vsftp

yum-utils

repository的管理工具,提供reporsync服务

createrepo

编辑yum库工具

plugin-priorities

控制yum源更新优先级工具

3、搭建base-yum源-基于ISO镜像

3-1、备份并移除其他repo
[root@yum-server yum.repos.d]# cd 
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# tar czvf repo-bk.tar.gz CentOS-*
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
[root@yum-server yum.repos.d]# rm -rf *.repo
[root@yum-server yum.repos.d]# ls
repo-bk.tar.gz
3-2、挂载ISO镜像:
[root@yum-server yum.repos.d]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
3-3、配置ISO镜像源
区别于云base源,ISO本地源名称为media.repo
[root@yum-server yum.repos.d]# vim media.repo
[c7-media]
name=CentOS-$releasever-media
baseurl=file:///mnt
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

注:配置repo路径、关闭gbg校验、启用ISO镜像仓库

3-4、查看repolist
[root@yum-server yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                                    repo name                                                                         status
c7-media                                                                   CentOS-7-Media                                                                    10,019
repolist: 10,019
3-5、拷贝rpm包
[root@yum-server yum.repos.d]# mkdir -p /yum/repository/c7
[root@yum-server yum.repos.d]# cp -ra  /mnt/* /yum/repository/c7/  

或者使用reposync同步
[root@yum-server yum.repos.d]#reposync -r c7-media -p /yum/repository/c7/
3-6、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/c7 /yum/repository/c7

4、搭建base-7-yum源-基于云源

4-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# mv CentOS-Media.repo CentOS-Media.repobak
[root@yum-server yum.repos.d]# ls
CentOS-Media.repobak repo-bk.tar.gz
4-2、下载云base-7源:
[root@yum-server yum.repos.d]# wget -O /etc/yum.repos.d/Centos-base-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@yum-server yum.repos.d]# ls
backup  Centos-base-7.repo
4-3、修改Centos-base-7.repo
将所有的源增加`-7`,$releasever更换为`7`
[root@yum-server yum.repos.d]# vim Centos-7-base.repo 
# CentOS-Base-7.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base-7]
name=CentOS-7 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
        http://mirrors.aliyuncs.com/centos/7/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates-7]
name=CentOS-7 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/7/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras-7]
name=CentOS-7 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/7/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus-7]
name=CentOS-7 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/7/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib-7]
name=CentOS-7 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/7/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
4-4、检验阿里云源是否正常:
[root@yum-server yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base-7: mirrors.aliyun.com
 * extras-7: mirrors.aliyun.com
 * updates-7: mirrors.aliyun.com
repo id                                                             repo name                                                                                status
base-7/7/x86_64                                                     CentOS-7 - Base - mirrors.aliyun.com                                                     10,097
extras-7/7/x86_64                                                   CentOS-7 - Extras - mirrors.aliyun.com                                                      341
updates-7/7/x86_64                                                  CentOS-7 - Updates - mirrors.aliyun.com                                                   1,787
repolist: 12,225
4-5、根据源标识同步源到本地目录:
创建本地仓库目录:
[root@yum-server ~]# mkdir /yum/repository/
同步阿里base源到本地base目录:
[root@yum-server ~]# reposync -r base-7 -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
4-6、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/base-7 /yum/repository/base-7
4-7、更新新的rpm包
[root@yum-server ~]# reposync -r base-7 -np /yum/repository/
注:时间同样较长,请耐心等待。
4-8、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/base-7
4-9、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-base-7.sh
#!/bin/bash
echo 'Updating Base Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-base-7.repo_$DATETIME.log
     reposync -r base-7 -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/base-7
    echo "SUCESS: $DATETIME base.repo update successful"
  else
    echo "ERROR: $DATETIME base.repo update failed"
fi
4-10、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating Aliyum Source
00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-base-7.sh
每月第一个周六的06点更新阿里云base yum源

5、搭建base-6-yum源-基于云源

5-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# mv CentOS-Media.repo CentOS-Media.repobak
[root@yum-server yum.repos.d]# ls
CentOS-Media.repobak repo-bk.tar.gz
5-2、下载云base-6源:
[root@yum-server yum.repos.d]# wget -O /etc/yum.repos.d/Centos-base-6.repo http://mirrors.aliyun.com/repo/Centos-6.repo
[root@yum-server yum.repos.d]# ls
backup  Centos-base-7.repo
5-3、修改Centos-base-6.repo
将所有的源增加`-6`,$releasever更换为`6`
[root@yum-server yum.repos.d]# vim Centos-base-6.repo 
# CentOS-Base-6.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base-6]
name=CentOS-6 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/6/os/$basearch/
        http://mirrors.aliyuncs.com/centos/6/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/6/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

#released updates 
[updates-6]
name=CentOS-6 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/6/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/6/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/6/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras-6]
name=CentOS-6 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/6/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/6/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/6/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus-6]
name=CentOS-6 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/6/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/6/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/6/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib-6]
name=CentOS-6 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/6/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/6/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/6/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
5-4、检验阿里云源是否正常:
[root@yum-server yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base-6: mirrors.aliyun.com
 * extras-6: mirrors.aliyun.com
 * updates-6: mirrors.aliyun.com
repo id                                                             repo name                                                                                status
base-6/x86_64                                                     CentOS-6 - Base - mirrors.aliyun.com                                                      6713
extras-6/x86_64                                                   CentOS-6 - Extras - mirrors.aliyun.com                                                      341
updates-6/x86_64                                                  CentOS-6 - Updates - mirrors.aliyun.com                                                   1,787
repolist: 12,225
5-5、根据源标识同步源到本地目录:
创建本地仓库目录:
[root@yum-server ~]# mkdir /yum/repository/
同步阿里base源到本地base目录:
[root@yum-server ~]# reposync -r base-6 -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
5-6、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/base-6 /yum/repository/base-6
5-7、更新新的rpm包
[root@yum-server ~]# reposync -r base-6 -np /yum/repository/
注:时间同样较长,请耐心等待。
5-8、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/base-6
5-9、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-base-6.sh
#!/bin/bash
echo 'Updating Base Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-base-6.repo_$DATETIME.log
     reposync -r base-6 -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/base-6
    echo "SUCESS: $DATETIME base.repo update successful"
  else
    echo "ERROR: $DATETIME base.repo update failed"
fi
5-10、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating Aliyum Source
00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-base-6.sh
每月第一个周六的06点更新阿里云base yum源

6、搭建epel-7-yum源

6-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# mv CentOS-Media.repo CentOS-Media.repobak
[root@yum-server yum.repos.d]# ls
CentOS-Media.repobak repo-bk.tar.gz
6-2、下载epel-7源:
[root@yum-server yum.repos.d]# wget -O /etc/yum.repos.d/Centos-epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@yum-server yum.repos.d]# ls
CentOS-Media.repobak  Centos-epel-7.repo  repo-bk.tar.gz
6-3、修改Centos-epel-7.repo
将所有的源增加`-7`
[root@yum-server yum.repos.d]# vim Centos-epel-7.repo 
[epel-7]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-7-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0

[epel-7-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0
~
6-4、检验阿里云源是否正常:
[root@yum-server yum.repos.d]#  yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                       repo name                                                                                      status
epel-7/x86_64                                                 Extra Packages for Enterprise Linux 7 - x86_64                                                 13,249
repolist: 13,249
6-5、根据源标识同步源到本地目录:
创建本地仓库目录:
[root@yum-server ~]# mkdir /yum/repository/
同步阿里epel源到本地epel目录:
[root@yum-server ~]# reposync -r epel-7 -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
6-6、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/epel-7 /yum/repository/epel-7
6-7、更新新的rpm包
[root@yum-server ~]# reposync -r epel-7 -np /yum/repository/
注:时间同样较长,请耐心等待。
6-8、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/epel-7
6-9、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-epel-7.sh
#!/bin/bash
echo 'Updating Epel Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-epel-7.repo_$DATETIME.log
     reposync -r epel-7 -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/epel-7
    echo "SUCESS: $DATETIME epel.repo update successful"
  else
    echo "ERROR: $DATETIME epel.repo update failed"
fi
6-10、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating Aliyum Source
00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==4{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-epel-7.sh
每月第2️个周六的06点更新阿里云epel-7 yum源

7、搭建epel-6-yum源

7-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# mv CentOS-Media.repo CentOS-Media.repobak
[root@yum-server yum.repos.d]# ls
CentOS-Media.repobak repo-bk.tar.gz
7-2、下载epel-6源:
[root@yum-server yum.repos.d]# wget -O /etc/yum.repos.d/Centos-epel-6.repo http://mirrors.aliyun.com/repo/epel-6.repo
[root@yum-server yum.repos.d]# ls
CentOS-Media.repobak  Centos-epel-6.repo  repo-bk.tar.gz
7-3、修改Centos-epel-6.repo
将所有的源增加`-6`
[root@yum-server yum.repos.d]# vim Centos-epel-6.repo 
[epel-6]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://mirrors.aliyun.com/epel/6/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[epel-debuginfo-6]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/6/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=0

[epel-source-6]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/6/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=0
~
7-4、检验阿里云源是否正常:
[root@yum-server yum.repos.d]# yum repolist
Centos-7-Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                       repo name                                                                                      status
epel-6/x86_64                                                 Extra Packages for Enterprise Linux 6 - x86_64                                                 12,587
repolist: 12,587
7-5、根据源标识同步源到本地目录:
创建本地epel目录:
[root@yum-server ~]# mkdir /yum/repository/
同步阿里epel源到本地epel目录:
[root@yum-server ~]# reposync -r epel-6 -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
7-6、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/epel-6 /yum/repository/epel-6
7-7、更新新的rpm包
[root@yum-server ~]# reposync -r epel-6 -np /yum/repository/
注:时间同样较长,请耐心等待。
7-8、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/epel-6
7-9、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-epel-6.sh
#!/bin/bash
echo 'Updating Epel Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-epel-6.repo_$DATETIME.log
     reposync -r epel-6 -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/epel-6
    echo "SUCESS: $DATETIME epel.repo update successful"
  else
    echo "ERROR: $DATETIME epel.repo update failed"
fi
7-10、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating Aliyum Source
00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==4{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-epel-6.sh
每月第2️个周六的06点更新阿里云epel-6 yum源

8、搭建zabbix-7-yum源

8-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# ls
CentOS-Media.repo repo-bk.tar.gz
[root@yum-server yum.repos.d]# mkdir backup   
[root@yum-server yum.repos.d]# mv *.repo backup/
[root@yum-server yum.repos.d]# ls
backup  repo-bk.tar.gz
8-2、配置zabbix-7源:
[root@yum-server yum.repos.d]# vim Centos-zabbix-7.repo	
[zabbix-7]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

[zabbix-non-supported-7]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
~
8-3、检验阿里云源是否正常:
[root@yum-server yum.repos.d]#  yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                             repo name                                                                                status
zabbix-7/x86_64                                                     Zabbix Official Repository - \x86_64                                                     289
zabbix-non-supported-7/x86_64                                       Zabbix Official Repository non-supported - \x86_64                                         4
repolist: 293
8-4、根据源标识同步源到本地目录:
创建本地zabbix目录:
[root@yum-server ~]# mkdir /yum/repository/
同步阿里zabbix源到本地zabbix目录:
[root@yum-server ~]# reposync -r zabbix-7 -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
8-5、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/zabbix-7 /yum/repository/zabbix-7
8-6、更新新的rpm包
[root@yum-server ~]# reposync -r zabbix-7 -np /yum/repository/
8-7、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/zabbix-7
8-8、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-zabbix-7.sh
#!/bin/bash
echo 'Updating Zabbix Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-zabbix-7.repo_$DATETIME.log
     reposync -r zabbix-7 -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/zabbix-7
    echo "SUCESS: $DATETIME zabbix.repo update successful"
  else
    echo "ERROR: $DATETIME zabbix.repo update failed"
fi
8-9、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating Aliyum Source
00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==5{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-zabbix-7.sh
每月第三个周六的06点更新阿里云zabbix-7 yum源

9、搭建zabbix-6-yum源

9-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# ls
CentOS-Media.repo repo-bk.tar.gz
[root@yum-server yum.repos.d]# mkdir backup   
[root@yum-server yum.repos.d]# mv *.repo backup/
[root@yum-server yum.repos.d]# ls
backup  repo-bk.tar.gz
9-2、配置zabbix-7源:
[root@yum-server yum.repos.d]# vim Centos-zabbix-6.repo	
[zabbix-6]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/6/\$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

[zabbix-non-supported-6]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/6/\$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
~
9-3、检验阿里云源是否正常:
[root@yum-server yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                             repo name                                                                                status
zabbix-6/x86_64                                                     Zabbix Official Repository - \x86_64                                                     157
zabbix-non-supported-6/x86_64                                       Zabbix Official Repository non-supported - \x86_64                                        15
repolist: 172
9-4、根据源标识同步源到本地目录:
创建本地zabbix目录:
[root@yum-server ~]# mkdir /yum/repository/
同步阿里zabbix源到本地zabbix目录:
[root@yum-server ~]# reposync -r zabbix-6 -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
9-5、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/zabbix-6 /yum/repository/zabbix-6
9-6、更新新的rpm包
[root@yum-server ~]# reposync -r zabbix-6 -np /yum/repository/
9-7、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/zabbix-6
9-8、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-zabbix-6.sh
#!/bin/bash
echo 'Updating Zabbix Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-zabbix-6.repo_$DATETIME.log
     reposync -r zabbix-6 -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/zabbix-6
    echo "SUCESS: $DATETIME zabbix.repo update successful"
  else
    echo "ERROR: $DATETIME zabbix.repo update failed"
fi
9-9、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating Aliyum Source
00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==5{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-zabbix-6.sh
每月第三个周六的06点更新阿里云zabbix-6 yum源

10、搭建grafana源

grafana镜像源目前国内只有清华大学镜像站效果好一点,本次搭建使用清华grafana源

10-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# mv CentOS-Media.repo CentOS-Media.repobak
[root@yum-server yum.repos.d]# ls
CentOS-Media.repobak repo-bk.tar.gz
10-2、下载grafana-yum源:
[root@yum-server yum.repos.d]# vim Centos-grafana.repo
[root@yum-server yum.repos.d]# cat Centos-grafana.repo
    [grafana]
    name=Grafana Official Repository - \x86_64
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm
    repo_gpgcheck=0
    enabled=1
    gpgcheck=0
10-3、检验清华云源是否正常:
[root@yum-server yum.repos.d]# yum repolist

Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
repo id			    repo name				status
grafana             grafana                 96
repolist: 96
10-4、根据源标识同步源到本地目录:
创建本地epel目录:
[root@yum-server ~]# mkdir /yum/repository/
同步清华grafana源到本地grafana目录:
[root@yum-server ~]# reposync -r grafana -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
10-5、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/grafana /yum/repository/grafana
10-6、更新新的rpm包
[root@yum-server ~]# reposync -r grafana -np /yum/repository/
注:时间同样较长,请耐心等待。
10-7、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/grafana
10-8、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-grafana.sh
#!/bin/bash
echo 'Updating Grafana Tsinghua Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-grafana.repo_$DATETIME.log
     reposync -r grafana -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/grafana
    echo "SUCESS: $DATETIME grafana.repo update successful"
  else
    echo "ERROR: $DATETIME grafana.repo update failed"
fi
10-9、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating Tsinghua Source
00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==6{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-grafana.sh
每月第四个周六的06点更新清华云grafana yum源

NR==3 第一周、NR==4 第二周、NR==5 第三周、NR==6第四周

11、搭建docker-yum源

docker镜像源目选用中国科学技术大学ustc镜像站,本次搭建使用ustc镜像站docker-ce源

11-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# mv CentOS-Media.repo CentOS-Media.repobak
[root@yum-server yum.repos.d]# ls
CentOS-Media.repobak repo-bk.tar.gz
11-2、下载docker源:
[root@yum-server yum.repos.d]# wget -O Centos-docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
[root@yum-server yum.repos.d]# sed -i 's/\https:\/\/download.docker.com/https:\/\/mirrors.ustc.edu.cn\/docker-ce/g' Centos-docker-ce.repo
11-3、检验ustc云源是否正常:
[root@yum-server yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id                                                                      repo name                                                                     status
docker-ce-stable/7/x86_64                                                    Docker CE Stable - x86_64                                                     122
repolist: 122
11-4、根据源标识同步源到本地目录:
创建本地epel目录:
[root@yum-server ~]# mkdir /yum/repository/
同步清华grafana源到本地grafana目录:
[root@yum-server ~]# reposync -r docker-ce-stable -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
11-5、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/docker-ce-stable /yum/repository/docker-ce-stable
11-6、更新新的rpm包
[root@yum-server ~]# reposync -r docker-ce-stable -np /yum/repository/
注:时间同样较长,请耐心等待。
11-7、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/docker-ce-stable
11-8、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-docker-ce-stable.sh
#!/bin/bash
echo 'Updating Docker CE Stable USTC Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-docker-ce.repo_$DATETIME.log
     reposync -r docker-ce-stable -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/docker-ce-stable
    echo "SUCESS: $DATETIME docker-ce.repo update successful"
  else
    echo "ERROR: $DATETIME docker-ce.repo update failed"
fi
11-9、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating USTC Docker CE Source
00 07 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==6{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-docker-ce-stable.sh
每月第四个周六的07点更新utsc docker-ce yum源

NR==3 第一周、NR==4 第二周、NR==5 第三周、NR==6第四周

12、搭建k8s-yum源

12-1、备份原有源:
[root@yum-server ~]# cd /etc/yum.repos.d/
[root@yum-server yum.repos.d]# ls
CentOS-Media.repo repo-bk.tar.gz
[root@yum-server yum.repos.d]# mkdir backup   
[root@yum-server yum.repos.d]# mv *.repo backup/
[root@yum-server yum.repos.d]# ls
backup  repo-bk.tar.gz
12-2、配置k8s源:
[root@yum-server yum.repos.d]# vim k8s-7.repo
[k8s-7]
name=K8S Official Repository -redhat 7 \x86_64
enabled=1
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
12-3、检验k8s源是否正常:
[root@yum-server yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id                                                     repo name                                                                                      status
k8s-7                                                         K8S Official Repository -redhat 7 \x86_64                                                      702
repolist: 702
12-4、根据源标识同步源到本地目录:
创建本地zabbix目录:
[root@yum-server ~]# mkdir /yum/repository/
同步阿里zabbix源到本地zabbix目录:
[root@yum-server ~]# reposync -r k8s-7 -p /yum/repository/
注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。
12-5、创建索引:
[root@yum-server ~]# createrepo -po /yum/repository/k8s-7 /yum/repository/k8s-7
12-6、更新新的rpm包
[root@yum-server ~]# reposync -r k8s-7 -np /yum/repository/
12-7、更新源数据:
[root@yum-server ~]# createrepo --update /yum/repository/k8s-7
12-8、创建定时任务脚本
[root@yum-server yum.repos.d]# vim /yum/script-reposync/yum-update-k8s-7.sh
#!/bin/bash
echo 'Updating K8s Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/repo/update-k8s-7.repo_$DATETIME.log
     reposync -r k8s-7 -np /yum/repository/
if [ $? -eq 0 ];then
      createrepo --update /yum/repository/k8s-7
    echo "SUCESS: $DATETIME k8s-7.repo update successful"
  else
    echo "ERROR: $DATETIME k8s-7.repo update failed"
fi
12-9、将脚本加入到定时任务中
[root@yum-server script-reposync]# crontab -e
# Updating Aliyum Source
00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==5{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-k8s-7.sh
每月第三个周六的06点更新阿里云k8s-7 yum源

NR==3 第一周、NR==4 第二周、NR==5 第三周、NR==6第四周

13、搭建web服务

httpd web服务

     打开httpd服务程序的主配置文件/etc/httpd/conf/httpd.conf ,将约第119行用于定义网站数据保存路径的参数DocumentRoot修改为/yum/,同时还需要将约第124行用于定义目录权限的参数Directory后面的路径也修改为/yum/,配置文件修改完毕后即可保存并退出。

[root@yum-server yum.repos.d]yum install -y httpd
[root@yum-server yum.repos.d]firewall-cmd --add-service=httpd --permanent
[root@yum-server conf]# vim /etc/httpd/conf/httpd.conf
………………省略部分输出信息………………
113 
114 #
115 # DocumentRoot: The directory out of which you will serve your
116 # documents. By default, all requests are taken from this directory, bu t
117 # symbolic links and aliases may be used to point to other locations.
118 #
119 DocumentRoot "/yum"
120 
121 #
122 # Relax access to content within /var/www.
123 #
124 <Directory "/yum">
125 AllowOverride None
126 # Allow open access:
127 Require all granted
128 </Directory>
………………省略部分输出信息………………
[root@yum-server ~]# systemctl restart httpd && systemctl enable httpd
nginx web服务

     打开nginx服务程序的主配置文件/etc/nginx.conf ,将约第43行用于定义网站数据保存路径的参数root修改为/yum/repository,54行location定义下的root路径改为/yum/repository,新增显示目录、文件大小、文件时间参数,配置文件修改完毕后即可保存并退出。

[root@yum-server yum.repos.d]yum install -y nginx
[root@yum-server yum.repos.d]firewall-cmd --add-service=httpd --permanent
[root@yum-server conf]# vim /etc/httpd/conf/httpd.conf
………………省略部分输出信息………………
 38     server {
 39         listen       80 default_server;
 40         listen       [::]:80 default_server;
 41         server_name  _;
 42         #root   /usr/share/nginx/html;
 43          root   /yum/repository;            //需修改
 44         # Load configuration files for the default server block.
 45         include /etc/nginx/default.d/*.conf;
 46 
 47         # 显示目录
 48         autoindex on;               //新增
 49         # 显示文件大小
 50         autoindex_exact_size on;    //新增
 51         # 显示文件时间
 52         autoindex_localtime on;     //新增
 53 
 54         location / {
 55         root /yum/repository;               //需修改
 56         }
………………省略部分输出信息………………
[root@yum-server ~]# systemctl restart nginx && systemctl enable nginx
访问测试:

repo汇总:http://10.0.7.190/repository/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_运维

base-ISO-yum源: http://10.0.7.190/repository/c7/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_yum_02

base-7-yum云源: http://10.0.7.190/repository/base-7/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_运维_03

base-6-yum云源: http://10.0.7.190/repository/base-6/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_CentOS_04

eple-7-yum源: http://10.0.7.190/repository/epel-7/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_centos_05

eple-6-yum源: http://10.0.7.190/repository/epel-6/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_linux_06

zabbix-7-yum源: http://10.0.7.190/repository/zabbix-7/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_CentOS_07

zabbix-6-yum源: http://10.0.7.190/repository/zabbix-6/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_yum_08

grafana-yum源: http://10.0.7.190/repository/grafana/

centos7配置yum源安装一键塔建opnenstack centos7搭建yum源服务器_运维_09

14、客户端yum源测试

14-1、base-ISO-yum源:
[root@centos73_test /etc/yum.repos.d]# vim /etc/yum.repos.d/media.repo    
[media]
name=media
baseurl=http://10.0.7.190/repository/c7
enabled=1
gpgcheck=0

[root@centos73_test /etc/yum.repos.d]# yum clean all
[root@centos73_test /etc/yum.repos.d]# yum makecache 
[root@centos73_test /etc/yum.repos.d]# yum install httpd
Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分输出信息………………
Dependencies Resolved

===================================================================================================================================================================
 Package                            Arch                                Version                                           Repository                          Size
===================================================================================================================================================================
Installing:
 httpd                              x86_64                              2.4.6-88.el7.centos                               media                              2.7 M

Transaction Summary
===================================================================================================================================================================
Install  1 Package

Total download size: 2.7 M
Installed size: 9.4 M
Is this ok [y/d/N]: 
………………省略部分输出信息………………
Complete!
14-2、base-7-yum云源:
[root@centos73_test /etc/yum.repos.d]# vim /etc/yum.repos.d/base-7.repo    

[base-7]
name=base
baseurl=http://10.0.7.190/repository/base-7
enabled=1
gpgcheck=0

[root@centos73_test /etc/yum.repos.d]# yum clean all
[root@centos73_test /etc/yum.repos.d]# yum makecache 
[root@centos73_test /etc/yum.repos.d]# yum install httpd

………………省略部分输出信息………………
Dependencies Resolved

===================================================================================================================================================================
 Package                                 Arch                               Version                                         Repository                        Size
===================================================================================================================================================================
Installing:
 httpd                                   x86_64                             2.4.6-90.el7.centos                             base                             2.7 M
Updating for dependencies:
 httpd-tools                             x86_64                             2.4.6-90.el7.centos                             base                              91 k

Transaction Summary
===================================================================================================================================================================
Install  1 Package
Upgrade             ( 1 Dependent package)

Total download size: 2.8 M
Is this ok [y/d/N]: 
………………省略部分输出信息………………
14-3、base-6-yum云源:
[root@centos63_test /etc/yum.repos.d]# vim /etc/yum.repos.d/base-6.repo    

[base-6]
name=base
baseurl=http://10.0.7.190/repository/base-6
enabled=1
gpgcheck=0

[root@centos63_test /etc/yum.repos.d]# yum clean all
[root@centos63_test /etc/yum.repos.d]# yum makecache 
[root@centos63_test /etc/yum.repos.d]# yum install acl

………………省略部分输出信息………………
Resolving Dependencies
--> Running transaction check
---> Package acl.x86_64 0:2.2.49-6.el6 will be updated
---> Package acl.x86_64 0:2.2.51-14.el7 will be an update
--> Processing Dependency: libacl = 2.2.51-14.el7 for package: acl-2.2.51-14.el6.x86_64
--> Processing Dependency: libc.so.6(GLIBC_2.14)(64bit) for package: acl-2.2.51-14.el6.x86_64
--> Finished Dependency Resolution
Total download size: 15 k
Installed size: 24 k
Is this ok [y/d/N]: y 
………………省略部分输出信息………………
14-4、epel-7-yum云源:
[root@centos73_test /etc/yum.repos.d]# vim /etc/yum.repos.d/epel-7.repo    

[epel-7]
name=base
baseurl=http://10.0.7.190/repository/epel-7
enabled=1
gpgcheck=0

[root@centos73_test /etc/yum.repos.d]# yum clean all
[root@centos73_test /etc/yum.repos.d]# yum makecache 
[root@centos73_test /etc/yum.repos.d]# yum install 2ping

………………省略部分输出信息………………
Dependencies Resolved

===================================================================================================================================================================
 Package                              Arch                                  Version                                    Repository                             Size
===================================================================================================================================================================
Installing:
 2ping                                noarch                                3.2.1-2.el7                                epel-7                                 62 k

Transaction Summary
===================================================================================================================================================================
Install  1 Package

Total download size: 62 k
Installed size: 204 k
Is this ok [y/d/N]: 
………………省略部分输出信息………………
14-5、epel-6-yum云源:
[root@centos63_test /etc/yum.repos.d]# vim /etc/yum.repos.d/epel-6.repo    

[epel-6]
name=base
baseurl=http://10.0.7.190/repository/epel-6
enabled=1
gpgcheck=0

[root@centos63_test /etc/yum.repos.d]# yum clean all
[root@centos63_test /etc/yum.repos.d]# yum makecache 
[root@centos63_test /etc/yum.repos.d]# yum install 2ping

………………省略部分输出信息………………
Dependencies Resolved

===================================================================================================================================================================
 Package                              Arch                                  Version                                    Repository                             Size
===================================================================================================================================================================
Installing:
 2ping                                noarch                                3.2.1-2.el6                                epel-6                                 62 k

Transaction Summary
===================================================================================================================================================================
Install       1 Package(s)

Total download size: 62 k
Installed size: 205 k
Is this ok [y/N]: 
………………省略部分输出信息………………
14-6、zabbix-7-yum源:
[root@centos73_test /etc/yum.repos.d]# vim etc/yum.repos.d/zabbix-7.repo   

[zabbix-7]
name=zabbix-7
baseurl=http://10.0.7.190/repository/zabbix-7
enabled=1
gpgcheck=0

[root@centos73_test /etc/yum.repos.d]yum clean all
[root@centos73_test /etc/yum.repos.d]yum makecache 
[root@centos73_test /etc/yum.repos.d]# yum install zabbix-get

………………省略部分输出信息………………
Dependencies Resolved

===================================================================================================================================================================
 Package                                 Arch                                Version                                   Repository                             Size
===================================================================================================================================================================
Installing:
 zabbix-get                              x86_64                              4.0.19-1.el7                              zabbix-7                              294 k

Transaction Summary
===================================================================================================================================================================
Install  1 Package

Total download size: 294 k
Installed size: 1.2 M
Is this ok [y/d/N]: 
………………省略部分输出信息………………
14-7、zabbix-6-yum源:
[root@centos63_test /etc/yum.repos.d]# vim etc/yum.repos.d/zabbix-6.repo   

[zabbix-6]
name=zabbix-6
baseurl=http://10.0.7.190/repository/zabbix-6
enabled=1
gpgcheck=0

[root@centos63_test /etc/yum.repos.d]yum clean all
[root@centos63_test /etc/yum.repos.d]yum makecache 
[root@centos63_test /etc/yum.repos.d]# yum install zabbix-agent

………………省略部分输出信息………………
Dependencies Resolved

===================================================================================================================================================================
 Package                                  Arch                               Version                                    Repository                            Size
===================================================================================================================================================================
Updating:
 zabbix-agent                             x86_64                             4.0.19-1.el6                               zabbix-6                             418 k

Transaction Summary
===================================================================================================================================================================
Upgrade       1 Package(s)

Total download size: 418 k
Is this ok [y/N]: 
………………省略部分输出信息………………
14-8、grafana-yum源:
[root@centos73_test /etc/yum.repos.d]# vim etc/yum.repos.d/grafana.repo   

[grafana]
name=grafana
baseurl=http://10.0.7.190/repository/grafana
enabled=1
gpgcheck=0

[root@centos73_test /etc/yum.repos.d]# yum clean  all      
Loaded plugins: aliases, changelog, fastestmirror, langpacks, tmprepo, verify, versionlock
Cleaning repos: grafana
Cleaning up everything
[root@centos73_test /etc/yum.repos.d]# yum makecache       
Loaded plugins: aliases, changelog, fastestmirror, langpacks, tmprepo, verify, versionlock
grafana                         | 2.9 kB  00:00:00     
(1/3): grafana/filelists_db     | 553 kB  00:00:00     
(2/3): grafana/primary_db       |  29 kB  00:00:00     
(3/3): grafana/other_db         | 6.0 kB  00:00:00     
[root@centos73_test /etc/yum.repos.d]# yum install grafana
………………省略部分输出信息………………
Dependencies Resolved
===================================================================================================================================================================
 Package            Arch           Version         Repository          Size
===================================================================================================================================================================
Installing:
 grafana       x86_64          6.7.2-1    grafana              61 M
Transaction Summary
===================================================================================================================================================================
Install  1 Package  (+37 Dependent packages)
Upgrade             (  1 Dependent package)

Total download size: 72 M
Is this ok [y/d/N]: y
Downloading packages:
grafana-6.7.2-1.x86_64.rpm   
--------------------------------------------------------------------------------
………………省略部分输出信息………………
Complete!

15、总结

yum源服务器搭建根据来源不同,有多种方式,以上述实验为例,搭建步骤如下:

1. 规划好yum仓库存储容量(/yum/repository/,500G)
2. 采用国内源(阿里云、华为云、各大高校镜像库等)
3. 光盘镜像采用everything,确保rpm包尽可能完整
4. centos6和centos7采用同一台服务器部署时,注意更改base.repo文件中`$releasever`变量
5. 根据来源准备服务器端repo配置文件(repo编写方式大同小异,除epel源、base源外其他的均需手动编写配置)
6. 对外提供服务可采用web(apache、nginx)、ftp(vsftp)等方式,注意服务器安全,尽可能开启防火墙,通过放行服务端口策略确保网络安全
7. 其他部分yum源更新脚本可根据实际情况参考编写

服务器端计划任务:

[root@yum-server yum.repos.d]# crontab -l
# Updating Aliyum Source
#00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-epel.sh
#00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==4{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-zabbix.sh
#00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==5{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-base.sh
#00 06 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==6{print $NF}') ] && /bin/bash /yum/script-reposync/yum-update-grafana.sh

00 00 25 * * /bin/bash /yum/script-reposync/yum-update-base-7.sh
00 00 26 * * /bin/bash /yum/script-reposync/yum-update-base-6.sh
00 01 * * * /bin/bash /yum/script-reposync/yum-update-epel-7.sh
00 02 * * * /bin/bash /yum/script-reposync/yum-update-epel-6.sh
00 04 * * * /bin/bash /yum/script-reposync/yum-update-zabbix-7.sh
00 05 * * * /bin/bash /yum/script-reposync/yum-update-zabbix-6.sh
00 06 * * * /bin/bash /yum/script-reposync/yum-update-grafana.sh

服务端repo:

[root@yum-server yum.repos.d]# ls
Centos-7-media.repo  Centos-base-6.repo  Centos-base-7.repo  Centos-epel-6.repo  Centos-epel-7.repo  Centos-zabbix-6.repo  Centos-zabbix-7.repo  grafana.repo docker-ce.repo k8s.repo

客户端repo:

[root@centos73_test /etc/yum.repos.d]#ls
base-7.repo base-6.repo epel-7.repo epel-6.repo media.repo  zabbix-7.repo zabbix-6.repo grafana.repo docker-ce.repo k8s.repo

客户端repo配置文件:

[root@centos73_test /etc/yum.repos.d]#cat /etc/yum.repos.d/centos-7.repo 

[base-7]
name=base
baseurl=http://10.0.7.190/repository/base-7
enabled=1
gpgcheck=0

[epel-7]
name=epel-7
baseurl=http://10.0.7.190/repository/epel-7
enabled=1
gpgcheck=0

[zabbix-7]
name=zabbix-7
baseurl=http://10.0.7.190/repository/zabbix-7
enabled=1
gpgcheck=0
[root@centos73_test /etc/yum.repos.d]#cat /etc/yum.repos.d/centos-6.repo 

[base-6]
name=base
baseurl=http://10.0.7.190/repository/base-6
enabled=1
gpgcheck=0

[epel-6]
name=epel-6
baseurl=http://10.0.7.190/repository/epel-6
enabled=1
gpgcheck=0

[zabbix-6]
name=zabbix-6
baseurl=http://10.0.7.190/repository/zabbix-6
enabled=1
gpgcheck=0