测试配置yum仓库的http镜像

一、基础环境
1、在tvm-base的基础上,复制一个镜像为tvm-yum来测试。
2、网络:
eth0:host-only(用于虚拟内网,手动固定IP,这样从宿主机可以直接连接到这个vm)
eth1:NAT(用于上外网,动态IP)
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] 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

[[email protected] network-scripts]# cat ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

[[email protected] ~]# ip a s dev eth0 |grep global
    inet 192.168.56.254/24 brd 192.168.56.255 scope global eth0
[[email protected] ~]# ip a s dev eth1 |grep global 
    inet 10.0.3.15/24 brd 10.0.3.255 scope global eth1
[[email protected] ~]# 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 eth1

2、初步计划是:
yum仓库,在hosts配置加入:
192.168.56.254 mirrors.office.test

然后这样访问yum仓库:
http://mirrors.office.test/centos

接下来需要:
1)配置一个local yum 镜像,并定时从公网的mirrors同步数据。
注1:不需要i386目录,此处只用x86_64的版本。
注2:不需要isos目录,里面存放的是iso文件。
2)配置一个http服务。
3)提供local-office.repo文件,供客户端用。

二、配置目录和脚本,制作本地的yum镜像
[[email protected] ~]# mkdir -p /data/yum/repo/centos/ /data/download/ /data/ops/bin/
1、上传centos6.5-x64的iso文件到/data/download/
[[email protected] ~]# ls /data/download/
CentOS-6.5-x86_64-bin-DVD1.iso  CentOS-6.5-x86_64-bin-DVD2.iso

[[email protected] ~]# mkdir -p /data/yum/repo/centos/6/os/x86_64
2、同步iso文件中的内容:
[[email protected] ~]# mount -ro loop /data/download/CentOS-6.5-x86_64-bin-DVD1.iso /mnt
[[email protected] ~]# rsync -avHPS /mnt/ /data/yum/repo/centos/6/os/x86_64/
[[email protected] ~]# umount /mnt
[[email protected] ~]# mount -ro loop /data/download/CentOS-6.5-x86_64-bin-DVD2.iso /mnt
[[email protected] ~]# rsync -avHPS /mnt/ /data/yum/repo/centos/6/os/x86_64/
[[email protected] ~]# umount /mnt

3、选一个mirrors,通过脚本从mirrors同步。
查找镜像列表:http://www.centos.org/download/mirrors/
这里我选择了一个支持rsync协议的镜像:http://mirrors.hust.edu.cn/centos/
注3:目前最新版本的是centos6.6,因此,实际上同步的后,这个仓库的版本是6.6,做个软连接,6 -> 6.6
[[email protected] ~]# ln -s /data/yum/repo/centos/6 /data/yum/repo/centos/6.6

开始同步
[[email protected] ~]# rsync -avzP --delete --delete-excluded --exclude "local*" --exclude "isos" --exclude "i386"  rsync://mirrors.hust.edu.cn/centos/6/ /data/yum/repo/centos/6/

三、配置http方式来访问yum镜像
1、防火墙放行80端口
2、配置httpd服务
1)若没有禁用selinux,则应当这样配置:
[[email protected] ~]# chcon -Rv --type=httpd_sys_content_t /data/yum/repo/

2)配置httpd服务:
[[email protected] ~]# cat /etc/httpd/conf/httpd.conf |grep ServerName |grep ^[^#]
ServerName 127.0.0.1

3)配置虚拟主机
[[email protected] ~]# mv /etc/httpd/conf.d/welcome.conf /tmp/
[[email protected] ~]# cat /etc/httpd/conf.d/mirrors.office.test.conf 
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName mirrors.office.test
    DocumentRoot /data/yum/repo
    
    ErrorLog logs/mirrors.office.test-error_log
    CustomLog logs/mirrors.office.test-access_log common

    <Directory /data/yum/repo>
        options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

3、启动httpd服务
[[email protected] ~]# chown -R apache:apache /data/yum/repo
[[email protected] ~]# service httpd start

4、测试
宿主机配置hosts文件:
192.168.56.254 mirrors.office.test

访问:
http://mirrors.office.test/centos

抓包信息:
[[email protected] ~]# 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  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Closing connection #0

chrome抓包信息:
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 OK

四、提供local-office.repo文件
1、现有的目录:
[[email protected] ~]# ls /data/yum/repo/centos/6/
centosplus  cloud  contrib  cr  extras  fasttrack  os  SCL  updates  xen4

2、local-office.repo
[[email protected] ~]# cat /etc/yum.repos.d/local-office.repo 
# local-office.repo
# 2015/7/14
# 把Centos-Base.repo更新成自己的mirror,其余的repo移除。

# - 包含基础的os里面的rpm包
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.office.test/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates - 包含可以更新的包
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.office.test/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful - 包含额外的包
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.office.test/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#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=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users - 包含用户贡献的包
[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://mirrors.office.test/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

五、等mirros同步完成后,开始测试
1、本机测试
先清除缓存:
[[email protected] ~]# yum clean all
Loaded plugins: fastestmirror, security
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors

试着更新下系统:
[[email protected] ~]# 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!
[[email protected] ~]# 
[[email protected] ~]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m

2、瞧,已经升级到6.6的版本,建议reboot一下先。
reboot前,先将httpd服务加入开机启动。
[[email protected] centos]# chkconfig httpd on
[[email protected] centos]# chkconfig --list |grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

[[email protected] ~]# cp /etc/yum.repos.d/local-office.repo /data/yum/repo/centos/
[[email protected] ~]# chown -R apache:apache /data/yum/repo/centos/

用update升级系统后,在/etc/yum.repos.d/里面更新了CentOS相关的repo文件,因此在重启后可以考虑移除
[[email protected] ~]# mv CentOS-* /etc/yum.repos.d/ /tmp/

3、配置脚本来同步,并放到crontab中执行
[[email protected] ~]# cat /data/ops/bin/repo_update.sh    
#!/bin/bash
#
# 2015/7/14

if [ -f /var/lock/subsys/repo_update ]; then
    echo "[`date`] yum repo update via rsync is already running."
    exit 0
fi

if [ -d /data/yum/repo/centos/6 ]; then
    touch /var/lock/subsys/repo_update
    rsync -avzP --delete --delete-excluded --exclude "local*" --exclude "isos" --exclude "i386"  rsync://mirrors.hust.edu.cn/centos/6/ /data/yum/repo/centos/6/
    rm /var/lock/subsys/repo_update
else
    echo "[`date`] [error] dir not proesent: /data/yum/repo/centos/6"
fi
chown -R apache:apache /data/yum/repo

放到crontab中
[[email protected] ~]# cat <<_NTP >>/var/spool/cron/$(whoami)
# repo update
0 4 * * * /bin/bash /data/ops/bin/repo_update.sh >/tmp/repo.log 2>&1 &
_NTP

六、TODO
1、加入epel源
[[email protected] ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
[[email protected] ~]# yum makecache

2、客户端使用local-office.repo文件
[[email protected] ~]# mv /etc/yum.repos.d/CentOS* /tmp/ && echo ‘192.168.56.254 mirrors.office.test‘ >> /etc/hosts && wget http://mirrors.office.test/centos/local-office.repo -O /etc/yum.repos.d/local-office.repo && yum makecach
[[email protected] ~]# yum update

符合预期。

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/CreateLocalMirror

3、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
时间: 2024-10-06 02:23:10

测试配置yum仓库的http镜像的相关文章

配置yum仓库安装服务并确保开机启动

实验目标 安装vsftpd,httpd软件包 判断是独立还是临时服务 启动这2个服务 确保开机启动 安装telnet-server,判断是临时还是独立 启动 实验环境 虚拟机 实验步骤 一.环境准备 1. 配置yum仓库 [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# ls rhel-debuginfo.repo [[email protected] yum.repos.d]# cp rhe

两种方法配置yum仓库

一.先搭建yum仓库服务器,再在客户端从服务器下载.repo文件:如果客户端能够连接到公网,则可以直接下载网易163等等的yum仓库配置文件 1]在内网搭建服务器,然后客户端下载: 先在已经搭建好本地yum仓库的服务器端通过FTP协议发布yum软件仓库: 1 [[email protected] ~]# mount 2 3 /dev/mapper/vg_zengqingfu-lv_root on / type ext4 (rw) 4 5 proc on /proc type proc (rw)

redhat enterprise linux 配置yum仓库

   官网下载的rhel,安装后是没有配置yum源的,需要自己配置yum源.网络上的很难找到rhel的yum源,但是在ISO镜像里面有很多redhat提供的软件包,也是正版软件,我们可以把这个拷贝出来,自己建立yum源.   1.安装成功rhel后,我们使用yum会发现提示未注册,第一步,从ISO镜像中拷贝出软件包,放到桌面上一个叫base的文件夹里. 2.搭建一个ftp环境,允许匿名登录.匿名登录的帐号为anonymous,密码没有.将ftp的默认目录设置在base文件夹那一路径.我这里将ft

CentOS yum 源配置和使用与配置yum仓库

yum 简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装. yum 安装: 系统默认是安装了yum的,所以无需安装. 如果朋友们系统有未安装yum的,请自行挂载光盘安装, yum的基础安装包如下,其他的安装包根据自己需要进行安装,安装过程不再演

配置Yum仓库

第1步:进入到/etc/yum.repos.d/目录中(因为该目录存放着Yum软件仓库的配置文件). 第2步:使用Vim编辑器创建一个名为rhel7.repo的新配置文件(文件名称可随意,但后缀必须为.repo),逐项写入下面加粗的配置参数并保存退出(不要写后面的中文注释). [rhel-media] :Yum软件仓库唯一标识符,避免与其他仓库冲突. name=linuxprobe:Yum软件仓库的名称描述,易于识别仓库用处. baseurl=file:///media/cdrom:提供的方式包

RHEL7配置YUM仓库

挂载光盘,没有光盘的话,可以自己下载,链接:https://pan.baidu.com/s/166kxNhc2pISSmKZLjFJrLA 密码:xvxo 创建目录并挂载光盘,前提是你一定要挂载光盘 用命令生成一个文件 红圈里填的是你创建的目录,用这条命令之后会自动生成一个配置文件,比较简单而且快然后编辑文件,加上红框里的那句话 这样还不够,如果重启这个配置就没用了,需要重新挂载,所以将它写到配置文件里,开机自动挂载加上红圈里那句话就OK了,可以用mount -a 测试一下有没有写错,没有提示就

CentOS配置yum仓库

一.实验前期准备 1.CentOS7 镜像文件 2.CentOS7 二.实验步骤 1.先确保镜像文件已经挂载,查看桌面是否有光盘图标,以及右下角光盘图标上面的绿灯是否点亮. 2.输入该命令行进入yum.repos.d文件目录下 [ [email protected]~]# cd /etc/yum.repos.d 3.通过ls命令查看目录下文件 [ [email protected] yum.repos.d] # rm -rf ./* 通过上述命令删除该目录下的文件 4.创建一个文件,并命名为Ce

软件包管理之YUM仓库配置

一.Yum原理级相关概念图解 二.YUM仓库实现方法 1.配置本地光盘作为YUM仓库 2.配置http作为YUM仓库 3.配置epel YUM仓库 三. 配置yum仓库 1.本地方盘作YUM仓库配置 (1).挂载光盘 (2)建立客户端配置文件/etc/yum.repos.d/ (3).保存退出并测试 2.配置http服务器作为YUM仓库 (1).安装httpd服务器,作为文件服务器 yum -y install httpd (2).将系统自带的另一张盘挂载至/media,并拷贝其package目

vim编辑器简介;shell脚本的参数;yum仓库配置

1. vim编辑器 命令模式:dd:删除(剪切)光标所在整行:ndd:删除(剪切)光标处开始的n行:yy:复制光标所在整行:nyy:复制从光标开始处的n行:u:撤销上一步的操作:p:将之前删除(dd)或复制(yy)过的数据粘贴到光标后面:输入模式:进入:a或i或o:a:在光标后面以为切换到输入模式:i:在光标当前位置切换到输入模式:o:在光标的下面再创建一个空行:退出到命令模式:Esc键':'或末行模式::w 保存:q 退出:wq! 强制保存退出:q! 强制退出(放弃对文档的修改):set nu