001.YUM源服務端搭建
阿新 • • 發佈:2018-11-01
一 前期準備
1.1 地址規劃
建議關閉防火牆及SELinux。
二 部署步驟
2.1 建立相應目錄
1 [[email protected] ~]# mkdir -p /rpm/centos/7/os/x86_64/Packages 2 [[email protected] ~]# mkdir -p /rpm/centos/7/updates/x86_64/Packages 3 [[email protected] ~]# mkdir -p /rpm/centos/7/extras/x86_64/Packages 4[[email protected] ~]# mkdir -p /rpm/centos/7/centosplus/x86_64/Packages
提示:參考現有repo檔案,建立yum伺服器用於儲存rpm檔案的目錄。
2.2 安裝httpd元件
1 [[email protected] ~]# yum -y install httpd http-devel
2.3 配置虛擬主機
1 [[email protected] ~]# cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/mirrors-vhost.conf
1 [[email protected] ~]# vi /etc/httpd/conf.d/mirrors-vhost.conf 2 <VirtualHost *:80> 3 ServerAdmin mirrors-server 4 DocumentRoot "/rpm" 5 ServerName mirrors.example.com 6 ServerAlias www.mirrors.example.com 7 ErrorLog "/var/log/httpd/mirrors.example.com-error_log" 8 CustomLog "/var/log/httpd/mirrors.example.com-access_log" common 9 <Directory /rpm> 10 Options Indexes FollowSymLinks 11 AllowOverride All 12 Require all granted 13 </Directory> 14 </VirtualHost>
2.4 啟動服務
1 [[email protected] ~]# systemctl start httpd 2 [[email protected] ~]# systemctl enable httpd
2.5 同步rpm包
1 [[email protected] ~]# yum -y install rsync #安裝同步rsync軟體 2 [[email protected] ~]# rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ \ /rpm/centos/7/os/x86_64/Packages 3 [[email protected] ~]# rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/extras/x86_64/Packages/ \ 4 /rpm/centos/7/extras/x86_64/Packages 5 [[email protected] ~]# rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/updates/x86_64/Packages/ \ 6 /rpm/centos/7/updates/x86_64/Packages 7 [[email protected] ~]# rsync -avz --delete rsync://mirrors.ustc.edu.cn/centos/7/centosplus/x86_64/Packages/ \ 8 /rpm/centos/7/centosplus/x86_64/Packages
提示:rsync更多使用方式見《001.Rsync備份》。
2.6 同步GPG檔案
1 [[email protected] ~]# wget -P /rpm/centos/ http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-7
三 建立倉庫
3.1 安裝建立倉庫所需包
1 [[email protected] ~]# wget -P /rpm/centos/ http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-7
3.2 建立倉庫
1 [[email protected] ~]# createrepo -o /rpm/centos/7/os/x86_64 \ 2 /rpm/centos/7/os/x86_64/Packages/ 3 [[email protected] ~]# createrepo -o /rpm/centos/7/extras/x86_64 \ 4 /rpm/centos/7/extras/x86_64/Packages/ 5 [[email protected] ~]# createrepo -o /rpm/centos/7/updates/x86_64 \ 6 /rpm/centos/7/updates/x86_64/Packages/ 7 [[email protected] ~]# createrepo -o /rpm/centos/7/centosplus/x86_64 \ 8 /rpm/centos/7/centosplus/x86_64/Packages/
四 驗證確認
4.1 客戶端配置
1 [[email protected] ~]# vi /etc/hosts 2 172.24.8.71 mirrors.example.com
提示:本環境方便測試,將伺服器地址新增至hosts,生產環境在有DNS情況下可跳過。
1 [[email protected] ~]# vi /etc/yum.repos.d/CentOS-Base.repo #修改yum配置檔案 2 [base] 3 name=CentOS-$releasever - Base - example.com 4 baseurl=http://mirrors.example.com/centos/$releasever/os/$basearch/ 5 gpgcheck=1 6 gpgkey=http://mirrors.example.com/centos/RPM-GPG-KEY-CentOS-7 7 8 [updates] 9 name=CentOS-$releasever - Updates - example.com 10 release=$releasever&arch=$basearch&repo=updates 11 baseurl=http://mirrors.example.com/centos/$releasever/updates/$basearch/ 12 gpgcheck=1 13 gpgkey=http://mirrors.example.com/centos/RPM-GPG-KEY-CentOS-7 14 15 [extras] 16 name=CentOS-$releasever - Extras - example.com 17 baseurl=http://mirrors.example.com/centos/$releasever/extras/$basearch/ 18 gpgcheck=1 19 gpgkey=http://mirrors.example.com/centos/RPM-GPG-KEY-CentOS-7 20 21 [centosplus] 22 name=CentOS-$releasever - Plus - example.com 23 baseurl=http://mirrors.example.com/centos/$releasever/centosplus/$basearch/ 24 gpgcheck=1 25 enabled=0 26 gpgkey=http://mirrors.example.com/centos/RPM-GPG-KEY-CentOS-7 27 [[email protected] ~]# yum clean all 28 [[email protected] ~]# yum repolist
1 [[email protected] ~]# yum clean all 2 [[email protected] ~]# yum repolist
五 優化配置
5.1 定時同步
若需要定時同步網際網路最新yum源,可將同步任務新增至contab定時任務。
同步更新之後,需要更新倉庫:
1 [[email protected] ~]# createrepo --update /rpm/centos/7/os/x86_64 2 [[email protected] ~]# createrepo --update /rpm/centos/7/extras/x86_64 3 [[email protected] ~]# createrepo --update /rpm/centos/7/updates/x86_64 4 [[email protected] ~]# createrepo --update /rpm/centos/7/centosplus/x86_64
5.2 其他同步方式
由於rsync只能支援開啟rsync協議的映象,推薦USTC。可使用reposync同步其他站點,相關參考命令如下:
1 reposync -r base -p /rpm/centos/7/os/x86_64/Packages/ 2 createrepo --update /rpm/centos/7/os/x86_64 3 OPTIONS: 4 -h, --help #顯示幫助 5 -c CONFIG, --config=CONFIG #預設配置檔案為/etc/yum.conf 6 -a ARCH, --arch=ARCH #按照指定的arch執行, 預設是當前機器的arch 7 --source #也同步src.rpm包 8 -r REPOID, --repoid=REPOID #同步遠端的repo ID. 預設是所有enable的repo 9 -e CACHEDIR, --cachedir CACHEDIR #執行儲存metadata的目錄 10 -t, --tempcache #使用一個臨時目錄儲存yum-cache 11 -d, --delete #刪除遠端倉庫不存在的本地包 12 -p DESTDIR, --download_path=DESTDIR #下載包的儲存目錄, 預設是當前目錄 13 --norepopath 14 #不在本地增加名為遠端repo ID的目錄. 只download一個repo的時候使用. 預設是增加目錄 15 -g, --gpgcheck #刪除package如果GPGkey檢查失敗. 16 提示:可以使用rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 或者yum install package 來避免 17 -u, --urls #只顯示下載的url, 不下載 18 -l, --plugins #開啟yum外掛支援 19 -m, --downloadcomps #同時下載comps.xml. 20 -n, --newest-only 21 #直下載最新的package, 一個包有多個版本在一個倉庫中, 可以只選擇下載最新的packages 22 -q, --quiet #最簡輸出.