介绍

为了保证IDC内所有主机版本一致。

目前问题, 当主机执行yum update 时,软件版本不可控。每个主机版本完全取决于更新的时机。

造成了同一个IDC内的版本的差异,比如有的数据库的版本为10.06,有的为10.13。尤其是使用了如postgis等拓展的时候。版本混乱,甚至主从之间都不一致。

实现方法

思路

一台机器做源服务统一管理所有软件的版本,更新策略(私有源服务中心)。其他主机指向私有源。

方法

  • reposync , yumdownloader 下载源,将远程服务源下载到本地
  • nginx 将本地源对外提供服务
  • createrepo 生成本地源

一个例子

服务端

rpm 数据

# 创建仓库存储目录
mkdir -p /var/www/repo/base/Packages

#备份原repo
mkdir -p /etc/yum.repos.d/backups
mv -f /etc/yum.repos/*.repo /etc/yum.repos.d/backups/

#使用阿里云加速
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#下载所有源,体量过大
reposync -r base -p /var/www/html/

# 按需下载 ntp 为例
yum install --downloadonly --downloaddir=/var/www/repo/base/Packages/ ntp

# 下载依赖
repotrack ntp

# 更新repo.xml
createrepo -v /var/www/repo/base/Packages

nginx 配置

cat << EOF > repo.conf
server {
        listen       80;
        listen       [::]:80;
        server_name  mirrors.zhangeamon.top;
        root         /data/www/mirrors/;

        autoindex on;
        autoindex_localtime on; 
}

EOF

客户端

cat << EOF > /etc/yum.repos.d/private.repo

[base]
name=private
baseurl=http://mirrors.zhangeamon.top/base/Packages/
enabled=1
gpgcheck=0 

EOF