Yum Server For Centos 7

0. introduction

假設公司內有很多CentOS系統主機,如果每台都是對外更新套件時,公司的網路頻寬就會很忙碌
何況更新的站台不一定是速度最快的,有人會說那用光碟更新啊,但光碟內的套件也不一定是最新版的
所以,有什麼方法可以讓更新速度最快、套件最新
 
你可以自行架設線上更新伺服器
 
第一,區域網路的速度一定是最快的
第二,由線上更新伺服器將套件下載一份最新版本,每一台CentOS主機再對線上更新伺服器更新的話
不僅節省公司對外頻寬,也可以永久保證套件是最新的。
 

1. install mirrordir

mirrordir - 同步目錄及檔案的程式,在備份時非常好用

wget http://pkgs.repoforge.org/mirrordir/mirrordir-0.10.49-1.2.el7.rf.x86_64.rpm
wget http://pkgs.repoforge.org/mirrordir/mirrordir-devel-0.10.49-1.2.el7.rf.x86_64.rpm
rpm -ivh mirrordir*

 

2. install yum-arch

yum-arch - 分析 RPM 套件的 header

只要經過這個步驟, yum 就會自動在 指定的目錄底下
新增 一個名為 headers 的目錄,並將分析的 RPM 紀錄資料都放置在裡面

wget ftp://rpmfind.net/linux/epel/6/ppc64/yum-arch-2.2.2-9.el6.noarch.rpm

 
rpm -ivh yum-arch-2.2.2-9.el6.noarch.rpm

 

3. install createrepo

createrepo - 建立索引檔,可以使用yum線上更新方式下載安裝

yum install createrepo -y

 

4. install Apache

yum install httpd -y
service httpd start
chkconfig httpd on

 
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

 
service iptables restart

 

5. create directory

# 目錄名稱調整一下 (還沒改)
mkdir -p /var/www/html/yum/centos/7/os/x86_64
mkdir -p /var/www/html/yum/centos/7/updates/x86_64
mkdir -p /var/www/html/yum/centos/7/extras/x86_64

 

6. mirror rpm

mirrordir -v ftp://ftp.nsysu.edu.tw//Unix-like/CentOS/6.0/os/x86_64 /var/www/html/yum/centos/6/os/x86_64
mirrordir -v ftp://ftp.nsysu.edu.tw/Unix-like/CentOS/6.0/updates/x86_64 var/www/html/yum/centos/6/updates/x86_64
mirrordir -v ftp://ftp.nsysu.edu.tw/Unix-like/CentOS/6.0/extras/x86_64 /var/www/html/yum/centos/6/extras/x86_64
mirrordir -v http://140.92.26.52/mirror/CentOS/7.1.1503/os/x86_64/ /var/www/html/yum/centos/7/os/x86_64
mirrordir -v http://140.92.26.52/mirror/CentOS/7.1.1503/updates/x86_64/ /var/www/html/yum/centos/7/updates/x86_64
mirrordir -v http://140.92.26.52/mirror/CentOS/7.1.1503/extras/x86_64/ /var/www/html/yum/centos/7/extras/x86_64

 

7. check rpm

使用yum-arch分析 RPM 套件的 header

依序分析os、updates、extras三個目錄

此套件版本不符合CentOS 6.0作業系統就會發生錯誤。

yum-arch /var/www/html/yum/centos/7/os/x86_64
yum-arch /var/www/html/yum/centos/7/updates/x86_64
yum-arch /var/www/html/yum/centos/7/extras/x86_64
yum-arch /var/www/html/yum/centos/7.1.1503/os/x86_64/
yum-arch /var/www/html/yum/centos/7.1.1503/updates/x86_64
yum-arch /var/www/html/yum/centos/7.1.1503/extras/x86_64

 

8. create XML metadata

createrepo 套件產生 XML metadata

在目錄下產生 repodata 資料夾,依序分析os、updates、extras三個目錄。

createrepo /var/www/html/yum/centos/6/os/x86_64
createrepo /var/www/html/yum/centos/6/updates/x86_64
createrepo /var/www/html/yum/centos/6/extras/x86_64
createrepo /var/www/html/yum/centos/7.1.1503/os/x86_64
createrepo /var/www/html/yum/centos/7.1.1503/updates/x86_64
createrepo /var/www/html/yum/centos/7.1.1503/extras/x86_64

 

9. Ready to Go

線上更新伺服器設定完畢後,接下來就是修改用戶端的 repo
將base、updates、extras三個目錄的mirrorlist加上#,然後修改baseurl路徑

cd /etc/yum.repos.d
cp CentOS-Base.repo CentOS-Base.repo.old

vi CentOS-Base.repo
...

baseurl=http://140.92.26.231/yum/centos/7.1.1503/os/x86_64/

...

baseurl=http://140.92.26.231/yum/centos/7.1.1503/updates/x86_64/

...

baseurl=http://140.92.26.231/yum/centos/7.1.1503/extras/x86_64/

...

baseurl=http://140.92.26.231/yum/epel/7/x86_64/

 
除非特別註明,本頁內容採用以下授權方式: Creative Commons Attribution-ShareAlike 3.0 License