测试配置yum仓库的http镜像

一、基础环境
1、在tvm-base的基础上,复制一个镜像为tvm-yum来测试。
2、网络:
eth0:host-only(用于虚拟内网,手动固定IP,这样从宿主机可以直接连接到这个vm)
eth1:NAT(用于上外网,动态IP)
[root@tvm-yum ~]# cd /etc/sysconfig/network-scripts/
[root@tvm-yum network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.56.254
PREFIX=24
GATEWAY=192.168.56.1[root@tvm-yum network-scripts]# cat ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp[root@tvm-yum ~]# ip a s dev eth0 |grep globalinet 192.168.56.254/24 brd 192.168.56.255 scope global eth0
[root@tvm-yum ~]# ip a s dev eth1 |grep global inet 10.0.3.15/24 brd 10.0.3.255 scope global eth1
[root@tvm-yum ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.3.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         10.0.3.2        0.0.0.0         UG    0      0        0 eth13、配置这台服务器为ntp和dns服务器,涉及:
1)ntp服务(防火墙放行:udp 123)
使用脚本配置:https://github.com/opera443399/ops/blob/master/bin/linux/init_datetime.sh
[root@tvm-yum ~]# sh init_datetime.sh s2)dnsmasq服务 (防火墙放行:udp 53)
[root@tvm-yum ~]# yum -y install dnsmasq
将涉及域名写入hosts文件:
[root@tvm-yum ~]# cat /etc/hosts |grep -v localhost
127.0.0.1 tvm-yum
192.168.56.254 mirrors.office.test
192.168.56.254 ntp.office.test
192.158.56.252 cobbler.office.test启动服务:
[root@tvm-yum ~]# service dnsmasq start
增加到开机启动:
[root@tvm-yum bin]# chkconfig dnsmasq on二、配置web服务
1、防火墙放行80端口
2、配置httpd
若没有禁用selinux,则应当这样配置:
[root@tvm-yum ~]# chcon -Rv --type=httpd_sys_content_t /data/yum/repo/
否则,直接禁用selinux[root@tvm-yum ~]# yum -y install httpd
调整httpd的配置:
[root@tvm-yum ~]# cat /etc/httpd/conf/httpd.conf |grep ServerName |grep ^[^#]
ServerName 127.0.0.1虚拟主机:
[root@tvm-yum ~]# mv /etc/httpd/conf.d/welcome.conf /tmp/
[root@tvm-yum ~]# cat /etc/httpd/conf.d/mirrors.office.test.conf
<VirtualHost *:80>ServerAdmin pc@office.testServerName mirrors.office.testDocumentRoot /data/yum/repoErrorLog logs/mirrors.office.test-error_logCustomLog logs/mirrors.office.test-access_log common<Directory /data/yum/repo>options Indexes FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>
</VirtualHost>3、启动httpd服务
[root@tvm-yum ~]# chown -R apache:apache /data/yum/repo
[root@tvm-yum ~]# service httpd start接下来需要:
1)配置一个local yum 镜像,并定时从公网的mirrors同步数据。
注1:不需要i386目录,此处只用x86_64的版本。
注2:不需要isos目录,里面存放的是iso文件。
注3:不需要ppc64目录,里面是powerpc架构的。
2)提供local-office.repo文件,供客户端用。三、配置目录和脚本,制作本地的yum镜像
[root@tvm-yum ~]# mkdir -p /data/yum/repo/{centos,epel}/6 /data/download/ /data/ops/bin/
1、从iso文件拷贝内容。本机目前只有CentOS-6.5的版本,当然,应该用6.6的更佳。
2种方式:
1)上传iso文件到/data/download/2)也可以直接挂载光碟[root@tvm-yum ~]# ls /data/download/
CentOS-6.5-x86_64-bin-DVD1.iso  CentOS-6.5-x86_64-bin-DVD2.iso[root@tvm-yum ~]# mkdir -p /data/yum/repo/centos/6/os/x86_642、同步iso文件中的内容:
[root@tvm-yum ~]# mount -ro loop /data/download/CentOS-6.5-x86_64-bin-DVD1.iso /mnt
[root@tvm-yum ~]# rsync -avHPS /mnt/ /data/yum/repo/centos/6/os/x86_64/
[root@tvm-yum ~]# umount /mnt
[root@tvm-yum ~]# mount -ro loop /data/download/CentOS-6.5-x86_64-bin-DVD2.iso /mnt
[root@tvm-yum ~]# rsync -avHPS /mnt/ /data/yum/repo/centos/6/os/x86_64/
[root@tvm-yum ~]# umount /mnt3、测试httpd服务的访问
访问:
http://mirrors.office.test/centos抓包信息:
[root@tvm-yum ~]# curl -o /dev/null -v -I http://mirrors.office.test/centos/
* About to connect() to mirrors.office.test port 80 (#0)
*   Trying 192.168.56.254... connected
* Connected to mirrors.office.test (192.168.56.254) port 80 (#0)
> HEAD /centos/ HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: mirrors.office.test
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 14 Jul 2015 02:32:14 GMT
< Server: Apache/2.2.15 (CentOS)
< Connection: close
< Content-Type: text/html;charset=UTF-8
< % Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Closing connection #0chrome抓包信息:
Remote Address:192.168.56.254:80
Request URL:http://mirrors.office.test/centos/
Request Method:GET
Status Code:200 OK
Remote Address:192.168.56.254:80
Request URL:http://mirrors.office.test/centos/
Request Method:GET
Status Code:200 OK4、选一个mirrors,通过脚本从mirrors同步。
这里我选择了一个支持rsync协议的镜像:
http://mirrors.ustc.edu.cn/centos/可以在搜索引擎搜索“rsync epel  6/x86_64/”这类关键词来找mirros,当然这里也有一个centos的列表:
http://www.centos.org/download/mirrors/配置脚本同步,并放到crontab中定时执行
----------------------------------------
[root@tvm-yum bin]# cat repo_update.sh
#!/bin/bash
#
# 2015/7/17f_log='/tmp/repo_update_run.log'if [ -f /var/lock/subsys/repo_update ]; thenecho "[`date`] 同步任务已经在执行中。" >>${f_log}exit 0
fid_centos='/data/yum/repo/centos/6'
d_epel='/data/yum/repo/epel/6'
-d ${d_centos} ||mkdir -p ${d_centos}
-d ${d_epel} ||mkdir -p ${d_epel}touch /var/lock/subsys/repo_update### centos ###
echo "[`date`] 开始同步centos"  >>${f_log}
rsync -avzP --delete --delete-excluded --exclude "isos" --exclude "i386" rsync://mirrors.ustc.edu.cn/centos/6/ /data/yum/repo/centos/6/ 2>>${f_log}
echo "[`date`] 操作结束。"  >>${f_log}
### epel ###
echo "[`date`] 开始同步epel"  >>${f_log}
rsync -avzP --delete  --delete-excluded --exclude "i386" --exclude "ppc64" rsync://mirrors.ustc.edu.cn/epel/6/ /data/yum/repo/epel/6/ 2>>${f_log}
echo "[`date`] 操作结束。"  >>${f_log} rm /var/lock/subsys/repo_update
echo "[`date`] 完成本次任务。"  >>${f_log} chown -R apache:apache /data/yum/repo----------------------------------------放到crontab中
[root@tvm-yum ~]# cat <<_NTP >>/var/spool/cron/root
# repo update
0 4 * * * /bin/bash /data/ops/bin/repo_update.sh >/tmp/repo.log 2>&1 &
_NTP先手动执行一次:
[root@tvm-yum ~]# /bin/bash /data/ops/bin/repo_update.sh >/tmp/repo.log 2>&1 &5、提供一个office源,供自定义的安装,包含企业定制rpm包,新版本的开源软件的rpm包
[root@tvm-yum ~]# yum install createrepo
[root@tvm-yum ~]# mkdir -p /data/yum/repo/office/centos/6/x86_64
[root@tvm-yum ~]# cd /data/yum/repo/office/6/x86_64
[root@tvm-yum x86_64]# wget 还可以一次下载多个rpm包:
[root@tvm-yum ~]# wget --execute robots=off -nc -nd -r -l1 -A'*.rpm' http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/CentOS/epel-6/x86_64/ 使用createrepo工具:
[root@tvm-yum x86_64]# createrepo .
[root@tvm-yum ~]# cd -
[root@tvm-yum ~]# chown -R apache:apache /data/yum/repo              6、提供local-office.repo文件
现有的目录:
[root@tvm-yum ~]# tree /data/yum/repo/ -L 3
/data/yum/repo/
├── centos
│   ├── 6
│   │   ├── centosplus
│   │   ├── cloud
│   │   ├── contrib
│   │   ├── cr
│   │   ├── extras
│   │   ├── fasttrack
│   │   ├── os
│   │   ├── SCL
│   │   ├── updates
│   │   └── xen4
│   └── RPM-GPG-KEY-CentOS-6
├── epel
│   ├── 6
│   │   ├── SRPMS
│   │   └── x86_64
│   └── RPM-GPG-KEY-EPEL-6
├── local-office.repo
└── office└── 6└── x86_64制作文件:local-office.repo
-----------------------------------
[root@tvm-yum ~]# cat /data/yum/repo/local-office.repo
#
# local-office.repo
# 2015/8/6
# 包含:Centos-Base, epel, office源。
## ------------------ 包含基础的os里面的rpm包
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.office.test/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#released updates - 包含可以更新的包
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.office.test/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#additional packages that may be useful - 包含额外的包
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.office.test/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#additional packages that extend functionality of existing packages - 包含功能扩展的包
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.office.test/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever#contrib - packages by Centos Users - 包含用户贡献的包
[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://mirrors.office.test/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.office.test/centos/RPM-GPG-KEY-CentOS-$releasever# ------------------ epel - 包含额外的包
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://mirrors.office.test/epel/6/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=http://mirrors.office.test/epel/RPM-GPG-KEY-EPEL-$releasever[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
baseurl=http://mirrors.office.test/epel/6/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=http://mirrors.office.test/epel/RPM-GPG-KEY-EPEL-$releasever
gpgcheck=1[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
baseurl=http://mirrors.office.test/epel/6/SRPMS
failovermethod=priority
enabled=0
gpgkey=http://mirrors.office.test/epel/RPM-GPG-KEY-EPEL-$releasever
gpgcheck=1# ------------------ office - 包含企业定制rpm包,新版本的开源软件的rpm包
[office]
name=enterprise office repo
baseurl=http://mirrors.office.test/office/$releasever/$basearch/
gpgcheck=0
enabled=1-----------------------------------注意:
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 这个key一开始是不存在的,这里由http服务来提供,在repo文件中指向到对应的URL:
gpgkey=http://mirrors.office.test/epel/RPM-GPG-KEY-EPEL-$releaseverGPG-KEY在这里:
[root@tvm-yum ~]# cp /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 /data/yum/repo/centos/
[root@tvm-yum ~]# cp /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 /data/yum/repo/epel/
默认安装centos后已经有了RPM-GPG-KEY-CentOS-6,RPM-GPG-KEY-EPEL-6可以通过安装公网的epel源来获取:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm当然了,我们应该移除现有的repo文件,仅使用上面提供的自己的repo配置即可:
【在本地】
[root@tvm-yum ~]# mv /etc/yum.repos.d/*.repo /tmp/
[root@tvm-yum ~]# cp /data/yum/repo/local-office.repo /etc/yum.repos.d/local-office.repo
【在客户端】
[root@tvm-rpm ~]# mv /etc/yum.repos.d/*.repo /tmp/ \
&& wget http://mirrors.office.test/local-office.repo -O /etc/yum.repos.d/local-office.repo \
&& yum clean all \
&& yum makecache四、等mirros同步完成后,开始测试
1、本机测试
先清除缓存:
[root@tvm-yum ~]# yum clean all
Loaded plugins: fastestmirror, security
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors试着更新下系统:
[root@tvm-yum ~]# yum update
(略)
(369/369): yum-utils-1.1.30-30.el6.noarch.rpm                                 | 110 kB     00:00
-----------------------------------------------------------------------------------------------------
Total                                                                 16 MB/s | 430 MB     00:26
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
(略)yum.noarch 0:3.2.29-60.el6.centos                                                                  yum-plugin-fastestmirror.noarch 0:1.1.30-30.el6                                                    yum-plugin-security.noarch 0:1.1.30-30.el6                                                         yum-utils.noarch 0:1.1.30-30.el6                                                                   Replaced:libsss_autofs.x86_64 0:1.9.2-129.el6                                                               Complete!
[root@tvm-yum ~]#
[root@tvm-yum ~]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m2、瞧,已经升级到6.6的版本,建议reboot一下先。
reboot前,先将httpd服务加入开机启动。
[root@tvm-yum centos]# chkconfig httpd on
[root@tvm-yum centos]# chkconfig --list |grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off用update升级系统后,在/etc/yum.repos.d/里面更新了CentOS相关的repo文件,因此在重启后可以考虑移除
[root@tvm-yum ~]# mv -f CentOS-* /etc/yum.repos.d/ /tmp/五、客户端使用local-office.repo文件
[root@tvm-rpm ~]# yum update
符合预期。
[root@tvm-rpm ~]# yum install nginx
[root@tvm-test conf.d]# nginx -v
nginx version: nginx/1.8.0
符合预期。ZYXW、参考
1、Creating a local repo (Mirror) with CentOS 6.2+
http://darktraining.com/93/2、Creating Local Mirrors for Updates or Installs
https://wiki.centos.org/HowTos/CreateLocalMirror3、List of CentOS Mirrors
http://www.centos.org/download/mirrors/4、How To Set Up and Use Yum Repositories on a CentOS 6 VPS
https://www.digitalocean.com/community/tutorials/how-to-set-up-and-use-yum-repositories-on-a-centos-6-vps

转载于:https://blog.51cto.com/nosmoking/1674831

测试配置yum仓库的http镜像相关推荐

  1. linux配置yum仓库复制的是什么,Yum 仓库的管理和配置

    Yum 全称是 (Yellow dog Updater Modified)×××狗更新 呵呵 借助于Yum,可以更新,卸载,升级rpm 软件包,并且他能够自动解决rpm包之间的依赖关系.能够让管理人员 ...

  2. 配置yum仓库和客户端:

    操作系统:rhel5 配置yum仓库和客户端: 1,  挂载 #mount /dev/cdrom /mnt 2,   编辑yum文件 #cd /etc/yum.repos.d/ #cp rhel-de ...

  3. 两种方法配置yum仓库

    一.先搭建yum仓库服务器,再在客户端从服务器下载.repo文件:如果客户端能够连接到公网,则可以直接下载网易163等等的yum仓库配置文件 1]在内网搭建服务器,然后客户端下载: 先在已经搭建好本地 ...

  4. 乌班图linux配置yum仓库,Linux系统的仓库配置(yum、epel)与软件安装(wireshark,wget,nginx)...

    文章目录 Linux系统的仓库配置(yum.epel)与软件安装(wireshark,wget,nginx) 1.配置本地yum仓库安装wireshark,wget 2.配置epel仓库,安装ngin ...

  5. 配置私有仓库(使用registry镜像搭建一个私有仓库)

    在使用Docker一段时间后,往往会发现手头积累了大量的自定义镜像文件,这些文件通过公有仓库进行管理并不方便:另外有时候只是希望在内部用户之间进行分享,不希望暴露出去.这种情况下,就有必要搭建一个本地 ...

  6. Linux配置yum仓库

    首先介绍一下yum. Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够 ...

  7. 手把手教你如何配置YUM仓库

    文章目录 前言 一.YUM概述 1.查看与配置YUM源 2.软件仓库的提供方式 3.RPM软件包的来源 4.在软件仓库中加入非官方RPM包组 5.安装并启用vsftpd服务 6.本地YUM仓库 7.y ...

  8. 云计算零基础(2)配置yum仓库

    先用xshell将安装包上传到虚拟机里面(crt方式在后面) 找到安装包所在的位置 上传成功后的软件是存在于当前目录下的(我是托在自己创建的/var/www/html/percona-xtraback ...

  9. Maven下载、配置环境变量、配置本地仓库、国内镜像源、在IDEA中配置Maven

    场景 Maven官网下载地址: https://maven.apache.org/download.cgi 此下载地址时下载最新的版本的Maven包. 目前是Maven3.6.3 注: 博客: htt ...

最新文章

  1. Linux内核设计第五周学习总结 分析system_call中断处理过程
  2. Mysql升序排序对为空的排在最后面is null
  3. 触摸屏之linux3.4.2安装tslib
  4. oracle+get+json,jQuery+ajax中getJSON() 用法实例
  5. 使用Maven开发用户模块的CRUD(增删改查)
  6. java分形树_跪求javaSE高手 graphics绘图问题 本来是递归算法实现的分形树 现要求通过改变递归深度来实现树的生长...
  7. 初始化Direct3D(2)
  8. 如何免费将PDF文档压缩到最小?
  9. 关于标志信息ZF、OF、SF、CF的理解
  10. HTML超链接实现页面内跳转
  11. DES方式加解密的简单介绍
  12. 华为解锁密码忘了怎么办用计算机,不记得手机锁屏密码怎么办_华为手机密码忘了的解决方法-系统城...
  13. python 调用matlab的.m文件
  14. ai如何旋转画布_Illustrator让一个图形沿着某一点或顶点旋转复制教程
  15. 自律训练法 John Sehorz
  16. WLAN技术入门(二):WLAN基本概念
  17. Android viewpager在scrollview中的滚动问题
  18. java 代码混淆 class字符串加密 jar包war包加密 支持JDK16
  19. [经验分享] 安装Windows系统遇到的一系列问题排查
  20. 微信企业号开发:微信考勤摇一摇考勤

热门文章

  1. Linux 可执行文件 ELF结构 及程序加载运行
  2. 汇编语言——第2次上机实验
  3. 28. 实现 strStr() golang
  4. CSDN-markdown编辑器语法速查手册
  5. java接口开发规范,干货满满
  6. 这些年Android面试的那些套路,社招面试心得
  7. 程序员35岁真的是分水岭吗?小白也能看明白
  8. HTML div 滚动条样式设计
  9. 网管的自我修养-网络系统
  10. 关于tomcat内路径跳转的一些思考