此文编号:HB213

生产服务器一般都上百台,而且可能大部分不能访问外网,部署一台自己内部使用的YUM源服务器,给其它服务器提供软件的安装是非常有必要的。
远程提供YUM源服务器,可以使用HTTP、NFS等服务来提供。这里我使用HTTP来提供远程YUM源服务。

一、安装apache/nginx提供web服务

HTTP服务使用apache软件提供即可。

1.1 安装apache
#yum -y install httpd http-devel
#service httpd start
#checkconfig httpd on
1.2 设置apache

设置一个别名,专门用来存放yum源文件。这里我们使用/data/yum目录来存放相关YUM源文件。

vim /etc/httpd/conf/httpd.conf
<IfModule alias_module> 
   Alias /yum "/data/yum/" 
   <Directory "/data/yum">
        Options Indexes FollowSymLinks
        AllowOverride None 
        Order allow,deny                                                                        
        Allow from all 
    </Directory> 
</IfModule>

/data/yum目录下的结构:
–说明文件.txt
–http.repo #给各服务器使用的repo文件。各服务器可以直接下载过去。
–yumdata #存放各ISO解压出来的文件(主要目录)
–iso #系统ISO源文件

根据自己的实际情况,可以修改目录名和路径等,只要后面在repo中指定的位置跟这里相符即可。

二、repo文件中的变量

在YUM源配置文件repo中,是支持使用变量的,常用的几个变量:
$releasever:系统版本号(大版本号),如CentOS7.2,变量显示为7Server
$arch:CPU类型,变量值有”i386″, “i486″,”i586”, “alpha”, “sparc”, “arm”, “m68k”,”mips”,”ppc”,”ia64″,”x86_64″等
$basearch:硬件架构,变量值有”i386″, “x86_64”

除了有这些默认变量外,我们还可以自定义变量。
在/etc/yum/vars/目录下创建文件,在文件中设置变量值即完成了变量的设定。
如创建一个包含系统名的文件osname
#cd /etc/yum/vars
#echo “OracleLinux6.8” > osname

设置完成后,在repo文件中就可以使用$osname作为变量,获取的值是OracleLinux6.8。
变量的设置对于后面配置YUM源文件repo很有用处。

三、YUM源文件来源

获取软件来源主要有两种:
一种是直接把操作系统iso中的文件全部复制到/data/yum/yumdata相应目录中。
把ISO文件mount起来,然后把里面的文件复制出来到相应系统目录下即可。
#cd yumdata
#ls
OracleLinux6.8 CentOS6.5 RHEL7.2

不过iso中的软件一般可能比较老,而且可能有一些特定的软件是没有的,所以还需要其它第三方软件。

一种是把一些官网或者正规网站提供的yum源同步到自己YUM源服务器中来。

这里讲三种把外网yum源同步到本地来的方法:

四、配置repo文件

为了方便使用,我们可以通过使用变量,使所有服务器通用一个repo文件。

主要有两种可以共用一个repo文件的方法:
一种是可以在repo中使用自定义变量
一种是使用yum-config-manager命令禁用不使用的YUM源
也可以两种方法同时使用。

第一种:在repo中使用自定义变量名
我们可以设置存放ISO的目录名为变量的值,然后系统会根据变量不同的值连接到不同的YUM源
如我们在/etc/yum/vars中设置osname,在文件中设置好系统版本
在repo文件中使用osname变量指向远程文件:
[ol_base]
name=Oracle Linux $osname ($basearch)
baseurl=http://172.28.6.87/yum/yumdata/$osname/
enabled=1
gpgcheck=0
skip_if_unavailable = 1
keepcache = 0

不同的系统,我们在osname文件中填入不同的值,然后就只要这一个repo复制到服务器上,服务器即会根据osname变量名去连接不同的YUM源。

第二种:使用yum-config-manager命令禁用YUM源
我们可以把所有系统的YUM源都写进一个repo文件中,然后禁用所有的YUM源,只开启符合当前系统版本的YUM源即可。
yum-config-manager –save –disable \*
yum-config-manager –enable ol_u8_base

使用这种方法,比较灵活,如想升级某个软件的版本,只要开启相应的YUM源即可。

五、客户端设置

如果有在repo中使用自定义变量,则需要先在/etc/yum/vars目录下创建相就的变量文件,并填上相应的值。
然后客户端只要把YUM源服务器配置好的repo文件下载或者复制到自己系统的/etc/yum.repos.d目录下即可。

发表评论