搭建局域网CentOS Yum服务器

阅读: 4110 技术沙龙| 2014.01.26

在公司内部,假设有一批CentOS 服务器需要升级或者服务器软件升级,每一台机都使用yum update命令从外网下载升级包的话,既费时间,也占流量,实在不划算。而且,有时候会遇到物理机不方便联网的情况,那就加无奈。所以,在局域网内搭建yum服务器,应该是每个Linux从业者必须懂的基本功。在此分享一下经验。其实操作很简单,注意一些细节就行了。

提供Yum源的服务器,以下简称为Yum服务器:

CentOS 6.3,主机名为antrolA,IP为192.168.2.161

需要升级的服务器,以下简称为客户端:

CentOS 6.3,主机名为antrolB,IP为192.168.2.124

一、

到官网查找并下载最新的CentOS 6.5镜像。

如果Yum服务器是物理机,需将DVD2镜像刻录到DVD光碟,然后将放进Yum服务器光驱;

如果是虚拟机,则在虚拟机光驱设置中,选择物理机上存放的DVD镜像即可。

Yum服务器加载光驱

[root@antrol ~]# mount /dev/cdrom? /media/cdrom

mount: block device /dev/sr0 is write-protected, mounting read-only

二、

为使局域网内其他CentOS服务器可以访问到Yum 服务器上的资源,需要在Yum服务器上架设http服务器或者ftp服务器。鉴于http服务器设置简易、流行,本文使用http服务器。

?[root@antrol ~]#yum install httpd

启动httpd服务,并设置为开机时启动

[root@antrol ~]# service httpd start

[root@antrol ~]# chkconfig httpd on

三、

在Appache根目录下建立文件夹yum及其子文件夹CentOS,将光盘内CentOS文件夹下的所有内容拷贝到/var/www/html/yum/CentOS目录下(光碟内其他的数据不需要)。

[root@antrol ~]# mkdir -p /var/www/html/yum

[root@antrol ~]# mkdir -p /var/www/html/yum/CentOS

[root@antrol ~]# cp -prf /media/CentOS/* /var/www/html/yum/CentOS/

可以弹出光碟了

[root@antrol~]# umount /dev/cdrom

[root@antrol~]# eject

四、Yum服务器安装createrepo并创建仓库

createrepo是Linux下的创建仓库的软件包,这个软件包在系统镜像CentOS-5.8-i386-bin-DVD-1of2里是有的。这里已经拷贝到/var/www/html/yum/CentOS目录下了。

[root@antrol ~]# rpm -ivh /var/www/html/yum/CentOS /createrepo-0.4.11-3.el5.noarch.rpm

Preparing… ? ? ? ? ? ? ? ?########################################### [100%]

? ?1:createrepo ? ? ? ? ? ? ########################################### [100%]

warning: /var/www/html/yum/CentOS/createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897)

安装完成之后,在/usr/bin/目录下会有一个createrepo命令。使用createrepo 生成XML metadata,在/var/www/html/yum/CentOS目录下生成repodata 文件夹(具体有何作用,还没弄明白)

[root@antrol ~]# createrepo /var/www/html/yum/CentOS/

2669/2669 – compat-gcc-34-g77-3.4.6-4.1.i386.rpm

Saving Primary metadata

Saving file lists metadata

Saving other metadata

五、

客户端修改Centos-Base.repo,建议先备份一个副本,以后若要从外网更新的话,可以再使用。

[root@zoro ~]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

[root@zoro ~]# vi /etc/yum.repos.d/CentOS-Base.repo

##############Centos-Base.repo内容修改后,以下#######################

# CentOS-Base.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]

name=CentOS-$releasever – Base

baseurl=http://192.168.2.161/yum/CentOS

enabled=1

gpgcheck=0

#released updates

[updates]

name=CentOS-$releasever – Updates

baseurl=http://192.168.2.161/yum/CentOS

gpgcheck=1

enabled=1

gpgcheck=0

#packages used/produced in the build but not released

[addons]

name=CentOS-$releasever – Addons

baseurl=http://192.168.2.161/yum/CentOS

enabled=1

gpgcheck=0

#additional packages that may be useful

[extras]

name=CentOS-$releasever – Extras

baseurl=http://192.168.2.161/yum/CentOS

enabled=1

gpgcheck=0

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever – Plus

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus

#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#contrib – packages by Centos Users

[contrib]

name=CentOS-$releasever – Contrib

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib

#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

##############Centos-Base.repo内容修改后,以上#######################

  1 取消加心?

点击这里给我发消息
点击这里给我发消息
点击这里给我发消息
点击这里给我发消息