因目前企业生产网络禁止联网,对于使用Linux的我们来说,非常不方便,想要使用yum源都很困难,挂dvd又不能完全满足要求,所以自建一个企业级的yum源,定时从公网同步到本地,然后生产网络直接配置在本地yum源,完美解决问题。当然如果网络允许,你也可以协调网络维护的兄弟开通生产网络访问公有的yum源,比如阿里云yum,网易yum,清华大学yum。本文仅介绍本地yum源的搭建和同步方法。

1、资源准备

  • 准备一台Linux主机,磁盘不少于1T
  • 在网络上面找个rsync共享的yum源,比如清华大学的yum,mirrors.ustc.edu.cn
  • 编写同步脚本,下面为示例,各位兄弟可以根据自己的环境进行调整
  • 客户端yum配置文件编写及测试

2、同步脚本编写

1)CentOS8 yum源同步脚本

#!/bin/bash
#Script name:rsync_yumrepo.sh RsyncBin="/usr/bin/rsync"
RsyncPerm='-avrt --delete --no-iconv'
# RsyncPerm='-avzP --delete --no-iconv' Centos_8_base='/data/yum_repo/Centos-8/' LogFile='/data/yum_repo/rsync_yum_log'
Date=`date +%Y-%m-%d` #check
function check {
if [ $? -eq ];then
echo -e "\033[1;32mRsync is success!\033[0m" >>$LogFile/$Date.log
else
echo -e "\033[1;31mRsync is fail!\033[0m" >>$LogFile/$Date.log
fi
}
if [ ! -d "$LogFile" ];then
mkdir $LogFile
fi #rsync centos
echo 'Now start to rsync centos 8 base!' >>$LogFile/$Date.log
$RsyncBin $RsyncPerm rsync://mirrors.ustc.edu.cn/centos/8/ $Centos_8_base >>$LogFile/$Date.log
check

2)CentOS7 yum源同步脚本

#!/bin/bash
#Script name:rsync_yumrepo.sh RsyncBin="/usr/bin/rsync"
RsyncPerm='-avrt --delete --no-iconv' Centos_7_base='/data/yum_repo/Centos-7/Base/'
Centos_7_epel='/data/yum_repo/Centos-7/Epel/'
Centos_7_rpmforge='/data/yum_repo/Centos-7/Rpmforge/' LogFile='/data/yum_repo/rsync_yum_log'
Date=`date +%Y-%m-%d` #check
function check {
if [ $? -eq 0 ];then
echo -e "\033[1;32mRsync is success!\033[0m" >>$LogFile/$Date.log
else
echo -e "\033[1;31mRsync is fail!\033[0m" >>$LogFile/$Date.log
fi
}
if [ ! -d "$LogFile" ];then
mkdir $LogFile
fi #rsync centos 7 base
echo 'Now start to rsync centos 7 base!' >>$LogFile/$Date.log
$RsyncBin $RsyncPerm rsync://mirrors.ustc.edu.cn/centos/7/os/ $Centos_7_base >>$LogFile/$Date.log
check
#rsync centos 7 epel
echo 'Now start to rsync centos 7 epel!' >>$LogFile/$Date.log
$RsyncBin $RsyncPerm --exclude=SRPMS/ --exclude=ppc64/ rsync://mirrors.ustc.edu.cn/epel/7/ $Centos_7_epel >>$LogFile/$Date.log
check
#rsync centos 7 rpmforge
echo 'Now start to rsync centos 7 x86_64 rpmforge!' >>$LogFile/$Date.log
$RsyncBin $RsyncPerm rsync://ftp-stud.fht-esslingen.de/dag/redhat/el7/en/x86_64/rpmforge/ $Centos_7_rpmforge/x86_64/ >>$LogFile/$Date.log
check

3)CentOS6 yum源同步脚本

#!/bin/bash
#Script name:rsync_yumrepo.sh RsyncBin="/usr/bin/rsync"
RsyncPerm='-avrt --delete --no-iconv --bwlimit=1000'
Centos_6_base='/data/yum_repo/Centos-6/Base/'
Centos_6_epel='/data/yum_repo/Centos-6/Epel/'
Centos_6_rpmforge='/data/yum_repo/Centos-6/Rpmforge/' LogFile='/data/yum_repo/rsync_yum_log'
Date=`date +%Y-%m-%d`
#check
function check {
if [ $? -eq 0 ];then
echo -e "\033[1;32mRsync is success!\033[0m" >>$LogFile/$Date.log
else
echo -e "\033[1;31mRsync is fail!\033[0m" >>$LogFile/$Date.log
fi
}
if [ ! -d "$LogFile" ];then
mkdir $LogFile
fi
#rsync centos 6 base
echo 'Now start to rsync centos 6 base!' >>$LogFile/$Date.log
$RsyncBin $RsyncPerm rsync://mirrors.yun-idc.com/centos/6/os/ $Centos_6_base >>$LogFile/$Date.log
check
#rsync centos 6 epel
echo 'Now start to rsync centos 6 epel!' >>$LogFile/$Date.log
$RsyncBin $RsyncPerm --exclude=SRPMS/ --exclude=ppc64/ rsync://mirrors.yun-idc.com/epel/6/ $Centos_6_epel >>$LogFile/$Date.log
check
#rsync centos 6 rpmforge
echo 'Now start to rsync centos 6 i386 rpmforge!' >>$LogFile/$Date.log
$RsyncBin $RsyncPerm rsync://ftp-stud.fht-esslingen.de/dag/redhat/el6/en/i386/rpmforge/ $Centos_6_rpmforge/i386/ >>$LogFile/$Date.log
check
echo 'Now start to rsync centos 6 x86_64 rpmforge!' >>$LogFile/$Date.log
$RsyncBin $RsyncPerm rsync://ftp-stud.fht-esslingen.de/dag/redhat/el6/en/x86_64/rpmforge/ $Centos_6_rpmforge/x86_64/ >>$LogFile/$Date.log
check

3、定时任务同步示例

crontab -e  # 填入如下内容
8 2 * * * /data/yum_repo/rsync_yum_shell/rsync_centos_yum.sh > /dev/null 2>&1

4、客户端配置实例

[Base]
name=CentOS-Base7-$basearch
baseurl=http://yum.evs168.com/Centos-7/Base/$basearch
enable=
gpgcheck=
gpgkey=http://yum.evs168.com/Centos-7/Base/$basearch/RPM-GPG-KEY-CentOS-7 [Rpmforge]
name=CentOS-Base7-Rpmforge-$basearch
baseurl=http://yum.evs168.com/Centos-7/Rpmforge/$basearch
enable=
gpgcheck= [Epel]
name=CentOS-Base7-Epel-$basearch
baseurl=http://yum.evs168.com/Centos-7/Epel/$basearch
enable=
gpgcheck=

配置完成后,执行如下命令清除本地yum缓存,重新建立即可。

[root@yum-server01 ~]# yum clean all
Loaded plugins: fastestmirror, security
Cleaning repos: CentOS-6-Base Epel Rpmforge evunrpms
Cleaning up Everything
Cleaning up list of fastest mirrors
[root@yum-server01 ~]# yum makecache
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
CentOS--Base | 3.7 kB : ...
CentOS--Base/group_gz | kB : ...
CentOS--Base/filelists_db | 6.4 MB : ...
CentOS--Base/other_db | 2.8 MB : ...
Epel | 4.3 kB : ...
Epel/filelists_db | 7.7 MB : ...
Epel/other_db | 2.9 MB : ...
Rpmforge | 1.9 kB : ...
Rpmforge/filelists_db | 2.3 MB : ...
Rpmforge/other_db | kB : ...
localrpms | 2.9 kB : ...
localrpms/filelists_db | kB : ...
localrpms/other_db | 8.8 kB : ...
Metadata Cache Created

4、自定义rpm包加入yum源

实际生产过程中,我们可能要自定义各类的源码包,打包成rpm包,也可以将这些rpm包加入到本地yum源中

在yum服务器上面创建目录,使用如下命令创建本地yum仓库,然后使用http或ftp共享出去,在客户机配置下即可。

1)创建本地自定义rpm包存放目录

mkdir /data/yum_repo/Centos-

2)删除repodata,如果有(第一次是没有这个目录的)

rm -fr repodata

3)创建新的repodata目录

createrepo .

4)客户端配置

[localrpms]
name=LocalRepo
baseurl=http://yum.evs168.com/localrpms
enable=
gpgcheck=

企业级本地yum源配置方案详解的更多相关文章

  1. yum源配置及详解

      红帽系列中,进行软件安装可以有三种方法,编译安装,rpm包安装,和yum源安装.其中yum方法安装最简单,因为它可以自动解决软件包之间的依赖关系... 一.常用yum源 yum源可以来源于多种文件 ...

  2. Centos6.4 本地yum源配置

    由于单位的服务器均使用的是内网,而安装一些软件如Git,需要很多的依赖包,使用yum安装相对简单,由于不能联网故配置本地yum源配置. 1.首先将需要rpm库添加到系统中: 1).虚拟机中安装的lin ...

  3. RedHat和CentOS使用本地yum源配置

    2013-04-01 11:38:30 标签:本地yum源 版权声明:原创作品,谢绝转载!否则将追究法律责任. 使用yum命令安装所需的软件,如果设备网络状况很好,当然也没必要去配置本地yum源,直接 ...

  4. CentOS7利用本地yum源配置NBD

    一:CentOS7.0创建本地YUM源 (物理机:直接将刻录的CentOS7光盘利用光驱插入物理机上) (虚拟机: CD/DVD>>连接本地ISO) 针对物理机192.168.9.112进 ...

  5. CENTOS 6-7的本地YUM源配置

    本文档适合CENTOS 6-7的本地YUM源配置 cd /media cd CentOS_6.8_Final/ cd Packages 创建目录拷贝文件 mkdir /yum cp * /yum 配置 ...

  6. CentOS 6.x 本地yum源配置与使用

    系统默认已经安装了可使用yum的软件包,所以可以直接配置: # mount  /dev/cdrom  /mnt                                挂载镜像,可以写到配置文件 ...

  7. CentOS本地yum源配置

    现有一台处在局域网的linux服务器,无法ping通外网,本文是关于本地yum源的配置 环境 : CentOS 6.5 一 .挂载CentOS镜像文件 (1) 创建挂载文件夹,若此文件夹已存在可忽略 ...

  8. Linux本地yum源配置以及使用yum源安装gcc编译环境

    本文档是图文安装本地yum源的教程,以安装gcc编译环境为例. 适用范围:所有的cetos,红帽,fedroa版本 适用人群:有一点linux基础的小白 范例系统版本:CentOS Linux rel ...

  9. RHEL7 本地yum源配置

    配置yum 源 1.挂载DVD光盘到/mnt   因为配置时候路径名里面不能有空格,否则不能识别  [root@ mnt]# mount /dev/cdrom /mnt 2.在目录/etc/yum.r ...

随机推荐

  1. java 基础 HashMap 并发扩容问题

    存入的数据过多的时候,尤其是需要扩容的时候,在并发情况下是很容易出现问题. resize函数: void resize(int newCapacity) { Entry[] oldTable = ta ...

  2. 1byte、1KB、4KB,1MB、1GB用16进制表示的范围。任意地址范围求字节数

    1byte.1KB.4KB,1MB.1GB用16进制表示的范围.任意地址范围求字节数 2018-02-12 18:27:48 望那伊人 阅读数 5032更多 分类专栏: 计算机相关   版权声明:本文 ...

  3. Appium无线连接安卓终端方法 + ADB Shell常用命令(持续更新)

    ADB无线连接手机的方法1)手机与PC有线相连 - 检查是否连接正常: adb devices - 执行以下命令:adb tcpip 5555 # 当前9001       - 成功提示:restar ...

  4. Luogu5307 [COCI2019] Mobitel 【数论分块】【递推】

    题目分析: 对于向上取整我们总有,$\lceil \frac{\lceil \frac{n}{a} \rceil}{b} \rceil = \lceil \frac{n}{a*b} \rceil$这个 ...

  5. Spring Cloud Alibaba学习笔记(5) - 整合Sentinel及Sentinel规则

    整合Sentinel 应用整合Sentinel 在dependencies中添加依赖,即可整合Sentinel <dependency> <groupId>com.alibab ...

  6. SQL Server邮件标识点

    <br>---换行 &nbsp:---空格 <H1></H1>---标题 --定义表格格式 N'<table border="1" ...

  7. Java Swing中文乱码解决方法

    Run As Run Configuration,在Arguments中增加下面这句: -Dfile.encoding=gbk

  8. GoAccess 视图化access.log 日志

    1.安装GoAccess 工具可以直接使用 apt-get install goaccess 2.使用goaccess命令将日志生成html文件 goaccess 日志路径 -o 输出HTML的路径 ...

  9. iOS - 外包开发常用第三方库(1)

    一:第三方插件1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com/ ...

  10. Questasim10.6c下载安装教程

    questasim作为modelsim的高级版,用着速度还是比modelsim爽很多,基本上所有操作指令都是和modelsim兼容的. 不同版本的vivado兼容的modelsim版本是不一样的,如果 ...