一 前期准备

1.1 地址规划

主机名
IP地址
备注
mirrors
172.24.8.71/24
yum服务器,与互联网同步
client
172.24.8.72/24
内部客户端

1.2 架构示意图

建议关闭防火墙及SELinux。

二 部署步骤

2.1 创建相应目录

  1 [root@mirrors ~]# mkdir -p /rpm/centos/7/os/x86_64/Packages
2 [root@mirrors ~]# mkdir -p /rpm/centos/7/updates/x86_64/Packages
3 [root@mirrors ~]# mkdir -p /rpm/centos/7/extras/x86_64/Packages
4 [root@mirrors ~]# mkdir -p /rpm/centos/7/centosplus/x86_64/Packages

提示:参考现有repo文件,创建yum服务器用于保存rpm文件的目录。

2.2 安装httpd组件

  1 [root@mirrors ~]# yum -y install httpd http-devel

2.3 配置虚拟主机

  1 [root@mirrors ~]# cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/mirrors-vhost.conf
  1 [root@mirrors ~]# vi /etc/httpd/conf.d/mirrors-vhost.conf
2 <VirtualHost *:80>
3 ServerAdmin mirrors-server
4 DocumentRoot "/rpm"
5 ServerName mirrors.example.com
6 ServerAlias www.mirrors.example.com
7 ErrorLog "/var/log/httpd/mirrors.example.com-error_log"
8 CustomLog "/var/log/httpd/mirrors.example.com-access_log" common
9 <Directory /rpm>
10 Options Indexes FollowSymLinks
11 AllowOverride All
12 Require all granted
13 </Directory>
14 </VirtualHost>

2.4 启动服务

  1 [root@mirrors ~]# systemctl start httpd
2 [root@mirrors ~]# systemctl enable httpd

2.5 同步rpm包

  1 [root@mirrors ~]# yum -y install rsync			#安装同步rsync软件
2 [root@mirrors ~]# rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ \ /rpm/centos/7/os/x86_64/Packages
3 [root@mirrors ~]# rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/extras/x86_64/Packages/ \
4 /rpm/centos/7/extras/x86_64/Packages
5 [root@mirrors ~]# rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/updates/x86_64/Packages/ \
6 /rpm/centos/7/updates/x86_64/Packages
7 [root@mirrors ~]# rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/centosplus/x86_64/Packages/ \
8 /rpm/centos/7/centosplus/x86_64/Packages

提示:rsync更多使用方式见《001.Rsync备份》。

2.6 同步GPG文件

  1 [root@mirrors ~]# wget -P /rpm/centos/ http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-7

三 创建仓库

3.1 安装创建仓库所需包

  1 [root@mirrors ~]# wget -P /rpm/centos/ http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-7

3.2 创建仓库

  1 [root@mirrors ~]# createrepo -o /rpm/centos/7/os/x86_64 \
2 /rpm/centos/7/os/x86_64/Packages/
3 [root@mirrors ~]# createrepo -o /rpm/centos/7/extras/x86_64 \
4 /rpm/centos/7/extras/x86_64/Packages/
5 [root@mirrors ~]# createrepo -o /rpm/centos/7/updates/x86_64 \
6 /rpm/centos/7/updates/x86_64/Packages/
7 [root@mirrors ~]# createrepo -o /rpm/centos/7/centosplus/x86_64 \
8 /rpm/centos/7/centosplus/x86_64/Packages/

四 验证确认

4.1 客户端配置

  1 [root@client ~]# vi /etc/hosts
2 172.24.8.71 mirrors.example.com

提示:本环境方便测试,将服务器地址添加至hosts,生产环境在有DNS情况下可跳过。

  1 [root@client ~]# vi /etc/yum.repos.d/CentOS-Base.repo		#修改yum配置文件
2 [base]
3 name=CentOS-$releasever - Base - example.com
4 baseurl=http://mirrors.example.com/centos/$releasever/os/$basearch/
5 gpgcheck=1
6 gpgkey=http://mirrors.example.com/centos/RPM-GPG-KEY-CentOS-7
7
8 [updates]
9 name=CentOS-$releasever - Updates - example.com
10 release=$releasever&arch=$basearch&repo=updates
11 baseurl=http://mirrors.example.com/centos/$releasever/updates/$basearch/
12 gpgcheck=1
13 gpgkey=http://mirrors.example.com/centos/RPM-GPG-KEY-CentOS-7
14
15 [extras]
16 name=CentOS-$releasever - Extras - example.com
17 baseurl=http://mirrors.example.com/centos/$releasever/extras/$basearch/
18 gpgcheck=1
19 gpgkey=http://mirrors.example.com/centos/RPM-GPG-KEY-CentOS-7
20
21 [centosplus]
22 name=CentOS-$releasever - Plus - example.com
23 baseurl=http://mirrors.example.com/centos/$releasever/centosplus/$basearch/
24 gpgcheck=1
25 enabled=0
26 gpgkey=http://mirrors.example.com/centos/RPM-GPG-KEY-CentOS-7
27 [root@client ~]# yum clean all
28 [root@client ~]# yum repolist
  1 [root@client ~]# yum clean all
2 [root@client ~]# yum repolist

五 优化配置

5.1 定时同步

若需要定时同步互联网最新yum源,可将同步任务添加至contab定时任务。

同步更新之后,需要更新仓库:

  1 [root@mirrors ~]# createrepo --update /rpm/centos/7/os/x86_64
2 [root@mirrors ~]# createrepo --update /rpm/centos/7/extras/x86_64
3 [root@mirrors ~]# createrepo --update /rpm/centos/7/updates/x86_64
4 [root@mirrors ~]# createrepo --update /rpm/centos/7/centosplus/x86_64

5.2 其他同步方式

由于rsync只能支持开启rsync协议的镜像,推荐USTC。可使用reposync同步其他站点,相关参考命令如下:

  1 reposync -r base -p /rpm/centos/7/os/x86_64/Packages/
2 createrepo --update /rpm/centos/7/os/x86_64
3 OPTIONS:
4 -h, --help #显示帮助
5 -c CONFIG, --config=CONFIG #默认配置文件为/etc/yum.conf
6 -a ARCH, --arch=ARCH #按照指定的arch执行, 默认是当前机器的arch
7 --source #也同步src.rpm包
8 -r REPOID, --repoid=REPOID #同步远程的repo ID. 默认是所有enable的repo
9 -e CACHEDIR, --cachedir CACHEDIR #执行存储metadata的目录
10 -t, --tempcache #使用一个临时目录存储yum-cache
11 -d, --delete #删除远程仓库不存在的本地包
12 -p DESTDIR, --download_path=DESTDIR #下载包的存储目录, 默认是当前目录
13 --norepopath #不在本地增加名为远程repo ID的目录. 只download一个repo的时候使用. 默认是增加目录
15 -g, --gpgcheck #删除package如果GPGkey检查失败.
16 提示:可以使用rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 或者yum install package 来避免
17 -u, --urls #只显示下载的url, 不下载
18 -l, --plugins #开启yum插件支持
19 -m, --downloadcomps #同时下载comps.xml.
20 -n, --newest-only #直下载最新的package, 一个包有多个版本在一个仓库中, 可以只选择下载最新的packages
22 -q, --quiet #最简输出.

001.YUM源服务端搭建的更多相关文章

  1. linux服务搭建---yum源服务搭建

    yum源服务 1.本地yum源 2.yum源不在本地          1>  ftp服务器     2>  nfs服务器 1.本地yum源 前提:    linux系统   找到一个相应 ...

  2. Centos 6.5 pptpd服务端搭建过程

    首先检测有没有启用ppp和tun cat /dev/ppp cat /dev/net/tun 如果显示是这样的 cat: /dev/ppp: No such device or address cat ...

  3. Apereo CAS Server服务端搭建教程

    不说废话了,直接看搭建过程吧. 首先到下载源码,https://github.com/apereo/cas-overlay-template/tree/4.2 附上地址,本次版本为4.2,下载源码后如 ...

  4. react 项目实战(一)创建项目 及 服务端搭建

    1.安装 React社区提供了众多的脚手架,这里我们使用官方推荐的create-react-app. //安装脚手架 npm install -g create-react-app //生成并运行项目 ...

  5. FTP服务端 FTP服务端搭建教程

    FTP服务端搭建教程如下:一.需要准备以下工具:1.微型FTP服务端.2.服务器管理工具二.操作步骤:1.下载微型FTP服务端.(站长工具包可下载:http://zzgjb.iis7.com/ )2. ...

  6. linux之DHCP服务端搭建 ( ip分配 四个阶段原理)

    DHCP服务 ip分配 四个阶段原理 1.DHCP服务目的 协议 作用 租约 原理四个阶段 动态主机配置协议(Dynamic Host Configuration Protocol,动态主机配置协议) ...

  7. 002.NTP服务端搭建

    一 安装及准备 1.1 安装NTP [root@server ~]# yum -y install ntp #也可下载之后rpm安装,或者源码安装 1.2 NTP服务地址 http://www.ntp ...

  8. centos6.5 svn服务端搭建

    一.前言 Subversion是一个免费的开源的版本管理系统,它是作为CVS(Concurrent Versions System)的取代品出现的.本文简单介绍了Subversion在centos上的 ...

  9. linux svn 服务端搭建

    环境是centos6.x. 关于团队对代码管理,相信大部分人习惯于svn.不过我个人比较喜欢git的.这个blog git 常用命令 就是介绍git的基本用法.现部署svn服务端方式如下: 1. 用y ...

随机推荐

  1. 「Vue」vue生命周期

    Vue的生命周期 beforeCreate---created---beforeMount---mounted---(beforeupdate---updated :数据有更新时才会执行)---bef ...

  2. OpenStack 存储服务 Cinder存储节点部署LVM(十六)

    Cinder存储节点部署 部署在192.168.137.12主机 1.安装lvm2软件包 yum install lvm2 -y 2.启动LVM的metadata服务并且设置该服务随系统启动 syst ...

  3. Hadoop生态圈-Flume的组件之sink处理器

    Hadoop生态圈-Flume的组件之sink处理器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一. 二.

  4. Java基础-算术运算符(Arithmetic Operators)

    Java基础-算术运算符(Arithmetic Operators) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java程序通过运算符实现对数据的处理,Java中的运算符包括: ...

  5. python---django中STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS

    先引入两篇相关文章,从中了解更为详细 django 静态资源配置详解 django静态文件配置 Django的STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS(先看) ...

  6. 蓝桥杯 算法训练 单词接龙 _DFS_搜索 字符串比较

    单词接龙 问题描述  单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相 ...

  7. jdk1.8.0_45源码解读——HashSet的实现

    jdk1.8.0_45源码解读——HashSet的实现 一.HashSet概述 HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.主要具有以下的特点: 不保证set的迭代顺 ...

  8. [百度地图] 用于类似 DWZ UI 框架的 百度地图 功能封装类 [MultiZMap.js] 实例源码

    MultiZMap 功能说明 MultiZMap.js 本类方法功能大多使用 prototype 原型 实现,它是 ZMap 的多加载版本,主要用于类似 DWZ 这个 多标签的 UI 的框架: 包含的 ...

  9. Linux - awk 文本处理工具三

    AWK 文件打印匹配 格式示例 awk '/Tom/' file # 打印匹配到得行 awk '/^Tom/{print $1}' # 匹配Tom开头的行 打印第一个字段 awk '$1 !~ /ly ...

  10. zookeeper笔记之基于zk实现分布式锁

    一.分布式锁概述 Java中基于AQS框架提供了一系列的锁,但是当需要在集群中的多台机器上互斥执行一段代码或使用资源时Java提供的这种单机锁就没了用武之地,此时需要使用分布式锁协调它们.分布式锁有很 ...