基於http的yum服務器
在集群中搭建一個基於HTTP的yum服務器,不僅安裝速度變快了許多,還能擴展自己定制的rpm包放入yum服務器中,其他服務器只需要正常使用yum install即可批量安裝統一經過定制的rpm包。這篇文章對習慣使用yum的人來說,以后對很多機器需要進行安裝軟件很方便
先安裝一個web軟件,apache或nginx都可以,我使用的是nginx
nginx編譯安裝文檔 :
http://www.cnblogs.com/czlun/articles/7119297.html
擴展(可選):
nginx開啟文件目錄列表顯示功能 :
http://www.cnblogs.com/czlun/articles/7698504.html
開始搭建yum源服務器
第一步 創建目錄
在web根目錄下創建centosplus、extras、updates、os四個目錄
mkdir -p /data/wwwroot/yum-server
#虛擬主機的路徑需要設置為該路徑
cd /data/wwwroot/yum-server
mkdir centosplus extras updates os
#這四個目錄用來區分類型
for DIR in $(ls); do cd $DIR; mkdir Packages; cd ..; done
#分別在四個目錄下創建存儲rpm包的目錄
第二步 獲取rpm包
現在我們要獲取yum服務向外提供的rpm包
方法一 下載iso,並從iso鏡像里拷貝(推薦)
wget http://mirror.nsc.liu.se/centos-store/7.2.1511/isos/x86_64/CentOS-7-x86_64-Everything-1511.iso
mount CentOS-7-x86_64-Everything-1511.iso /mnt
cp /mnt/Packages/* /data/wwwroot/yum-server/os/Packages/
方法二 利用rsync同步至本地(不推薦)
rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ /data/wwwroot/yum-server/os/Packages/
rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/extras/x86_64/Packages/ /data/wwwroot/yum-server/extras/Packages/
rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/updates/x86_64/Packages/ /data/wwwroot/yum-server/updates/Packages/
rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/centosplus/x86_64/Packages/ /data/wwwroot/yum-server/centosplus/Packages/
該方法不推薦的原因很簡單,慢。
第三步 創建倉庫
對三個目錄使用createrepo創建倉庫(生成repodata目錄)
yum install -y createrepo
createrepo -o /data/wwwroot/yum-server/os /data/wwwroot/yum-server/os/Packages/
createrepo -o /data/wwwroot/yum-server/extras /data/wwwroot/yum-server/extras/Packages/
createrepo -o /data/wwwroot/yum-server/updates /data/wwwroot/yum-server/updates/Packages/
createrepo -o /data/wwwroot/yum-server/centosplus /data/wwwroot/yum-server/centosplus/Packages/
#-o 指定repodata生成的目錄
此時yum服務器已經搭建完成
客戶端配置
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
> /etc/yum.repos.d/CentOS-Base.repo
cat >> /etc/yum.repos.d/CentOS-Base.repo << eof
[base]
name=CentOS-$releasever - Base
baseurl=http://192.168.127.200/os/
enabled=1
gpgcheck=0
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://192.168.127.200/updates/
enabled=1
gpgcheck=0
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://192.168.127.200/extras/
enabled=1
gpgcheck=0
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://192.168.127.200/centosplus/
enabled=1
gpgcheck=0
eof
yum clean all
yum makecache
#當yum服務器內容修改了之后或者修改了yum源文件,客戶機需要重新建立緩存
#baseurl指向倉庫(repodata)所在的目錄
若是要保持本地yum源於網絡yum源同步,則可以將
rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ /data/wwwroot/yum-server/os/Packages/
rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/extras/x86_64/Packages/ /data/wwwroot/yum-server/extras/Packages/
rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/updates/x86_64/Packages/ /data/wwwroot/yum-server/updates/Packages/
rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/centosplus/x86_64/Packages/ /data/wwwroot/yum-server/centosplus/Packages/
加入定時任務。
鏡像站點與本地路徑對應的目錄:
在http://mirrors.ustc.edu.cn/centos/7/的基礎上
os/x86_64/Packages/ 對應 /data/wwwroot/yum-server/os/Packages/
updates/x86_64/Packages/ 對應 /data/wwwroot/yum-server/updates/Packages/
extras/x86_64/Packages/ 對應 /data/wwwroot/yum-server/extras/Packages/
centosplus/x86_64/Packages/ 對應 /data/wwwroot/yum-server/centosplus/Packages/
當yum服務器內容修改了之后,需要更新倉庫
createrepo --update /data/wwwroot/yum-server/os
createrepo --update /data/wwwroot/yum-server/centosplus
createrepo --update /data/wwwroot/yum-server/extras
createrepo --update /data/wwwroot/yum-server/updates
更新了倉庫,客戶機也需要重新建立緩存
yum clean all
yum makecache
到這里,我們的yum服務器及客戶機的配置都已經完成了。