說起來這個(gè)東西很尷尬??赡苁怯肅ENTOS的人太多了吧,網(wǎng)上所有的教程都是講CENTOS如何部署本地源倉庫的,大多也是用的阿里源清華源這些。我們正版RHEL用戶反而找不到點(diǎn)教程來學(xué)習(xí)如何部署官方源節(jié)點(diǎn)(此處并非凡爾賽)。這點(diǎn)小事去找紅帽官方支持又感覺有點(diǎn)丟面子(個(gè)人情節(jié))。不得不夸一句,付了錢的紅帽服務(wù)還是挺棒的,嘿嘿。一般不是遇到了重大問題一般不找他們。
(如果你是學(xué)習(xí)研究者沒有正版付費(fèi)的RHEL,你可以看我其他貼子的教程,去官網(wǎng)申請一個(gè)開發(fā)者賬戶。除了沒有紅帽的付費(fèi)支持,其他功能均可測試。之前yum下載軟件網(wǎng)速是有點(diǎn)差,不過最近紅帽的CDN好像又打了雞血了,現(xiàn)在變得速度很快呢,反正我的網(wǎng)速能跑滿)
作為第一個(gè)發(fā)布RHEL7最新正版系統(tǒng)建立本地源的選手,我還是有點(diǎn)小自豪呢~
首先說一下環(huán)境。我們本地內(nèi)網(wǎng)中部署有RHEL7.0的機(jī)器,因?yàn)榇嬖诟綦x安全需要,需要內(nèi)網(wǎng)搞個(gè)源。不然安裝個(gè)軟件啦,還有要升級點(diǎn)東西了,用RPM真的會(huì)搞死人的!我用來做節(jié)點(diǎn)的機(jī)器是安裝的RHEL7.9版本(也就是截至目前的最新版本)。
第一步:就是安裝創(chuàng)建源的工具creatrepo。
我在安裝系統(tǒng)的時(shí)候選擇的是默認(rèn)GUI并帶了開發(fā)工具。系統(tǒng)自帶這個(gè)工具,所以我這里可以直接用。如果是最小化安裝的朋友沒有工具的,安裝一個(gè)即可。咱們正版用戶,直接YUM就行。如果你暫時(shí)沒有聯(lián)網(wǎng),也可以掛載光盤做個(gè)原始源來安裝。
yum install createrepo -y
第二步:就是創(chuàng)建存放源的目錄、創(chuàng)建腳本文件和創(chuàng)建源列表.txt。
當(dāng)然,如果你頭鐵,非常有志氣,為了磨練英雄般的意志力,也可以手動(dòng)輸入……腳本是為了省事的。
mkdir文件夾和touch一個(gè)xxx.sh文件這個(gè)應(yīng)該不需要我教了吧?
什么?這也需要?好吧,那我就寫一下好了~(拼音命名,夠入門了吧?專業(yè)人士建議正規(guī)英文)
mkdir -p /bendiyuan/
touch /bendiyuan/tongbujiaoben.sh
touch /bendiyuan/list.txt
第三步:肯定就是用VIM往腳本里寫內(nèi)容啦~
這里我粘貼上我寫的腳本供大家參考:
聲明這個(gè)腳本是我網(wǎng)上找到資料后根據(jù)自己情況改編的,源腳本已經(jīng)過時(shí)了無法使用了。改造后的腳本部署非常簡單,會(huì)在當(dāng)前目錄直接開整,把一切都部署好。
#!/bin/bash
date=$(date +%Y%m%d-%H%M%S)
scriptdir=$(dirname $0)
HLIST=$(cat $scriptdir/list.txt)
cd $scriptdir && mkdir -p log && mkdir -p patch
logfile=$(pwd)/log/yum_repository_sync.log
yum clean all ; yum makecache
if [ $? -ne 0 ];then
? ? echo "${date}: Error,Please check if yum of this machine is available" | tee -a $logfile
else
? ? reposync -n --repoid="rhel-7-server-e4s-optional-rpms" --repoid="rhel-7-server-eus-optional-rpms" --repoid="rhel-7-server-extras-rpms" --repoid="rhel-7-server-optional-rpms" --repoid="rhel-7-server-rpms"? --repoid="rhel-ha-for-rhel-7-server-rpms" --repoid="epel" --downloadcomps -l -n -p $scriptdir/patch/rhel7/
for repolist in $HLIST
do
? ? cd /bendiyuan/patch/rhel7/$repolist/ && createrepo -v /bendiyuan/patch/rhel7/$repolist/ -g comps.xml
done
? ? find /bendiyuan/patch -type d -exec chmod o+x {} \;
? ? chmod -R o+r /bendiyuan/patch && touch yum_repository_sync.log
? ? echo "${date}: Success,yum_repository synchronized" | tee -a $logfile
fi
-g comps.xml 不寫也會(huì)創(chuàng)建這個(gè)文件的,基本也可用,只是不會(huì)創(chuàng)建軟件包組索引相關(guān)的元數(shù)據(jù)信息。這個(gè)不配置會(huì)影響yum?groupinstall的順利使用。
源列表的內(nèi)容顧名思義就是源的列表嘍:
epel
rhel-7-server-e4s-optional-rpms
rhel-7-server-eus-optional-rpms
rhel-7-server-extras-rpms
rhel-7-server-optional-rpms
rhel-7-server-rpms
rhel-ha-for-rhel-7-server-rpms
此處再特別說明一下這一行:這里我同步七個(gè)軟件倉庫,這7個(gè)是我自己的需要,可根據(jù)你的需要來修改。這七個(gè)倉庫是我自己提前都開啟好的,基本上大多數(shù)內(nèi)容都有了。
reposync -n --repoid="rhel-7-server-e4s-optional-rpms" --repoid="rhel-7-server-eus-optional-rpms" --repoid="rhel-7-server-extras-rpms" --repoid="rhel-7-server-optional-rpms" --repoid="rhel-7-server-rpms" --repoid="rhel-ha-for-rhel-7-server-rpms" --repoid="epel" --downloadcomps -l -n -p $scriptdir/patch/rhel7/
如果你只是學(xué)習(xí)一下的話,有主倉庫配個(gè)擴(kuò)展倉庫和EPEL足夠你用了,甚至只有一個(gè)主倉庫都行。名稱分別是下面這三個(gè)
主倉庫:rhel-7-server-rpms
擴(kuò)展倉庫:rhel-7-server-extras-rpms
EPEL:epel
官方倉庫不會(huì)開啟是么?打開你的redhat.repo文件,里面有大量的倉庫名字供你挑選。開啟的命令如下:
subscription-manager repos --enable "一號倉庫名稱" --enable "二號倉庫名稱"??--enable "三號倉庫名稱"
第四步:自己弄個(gè)APACHE(httpd)搭個(gè)網(wǎng)站,為yum創(chuàng)建相應(yīng)的web配置文件,/etc/httpd/conf.d/local_yum_server.conf
alias /rhel-7-x86_64 /patch/rhel7/rhel-7-server-rpms
alias XXXX? ?XXXX(此處給你的其他倉庫地址設(shè)置上簡單的別名方便后期編寫REPO的時(shí)候少寫字,看起來也清晰也省得自己累。不想弄也能不弄)
<VirtualHost *:80>
??DocumentRoot "/bendiyuan/patch/rhel7/"
</VirtualHost>
<directory "/patch/rhel7/">
??options +indexes
??Require all granted
</directory>
關(guān)于options +indexes這個(gè)選項(xiàng),不是必須的,沒有也不會(huì)影響功能,只是為了方便前期測試。關(guān)于gpgkey的文件,需要在自己手動(dòng)放到站點(diǎn)的根下。
第五步:準(zhǔn)備完成啦!直接開整!
用bash運(yùn)行腳本:bash bendiyuan.sh
啟動(dòng)httpd
打開我們需要使用yum的客戶端,把我們的本地源寫進(jìn)/etc/yum.repo.d/redhat.repo里頭。
[起個(gè)名字,別和官方的名字重復(fù)了]
name=同上編個(gè)名字
baseurl=http://你的IP地址/rhel-7-x86_64
enabled=1
gpgcheck=0
gpgkey=http://你的IP地址/RPM-GPG-KEY-redhat-release
重復(fù)上面的內(nèi)容,添加其他的幾個(gè)源,刷新下緩存直接開整即可。
哈哈,能用YUM了,好爽啊~~~~
更新:
上次沒有寫同步完的大小,想同步的朋友可能會(huì)擔(dān)心出現(xiàn)硬盤空間不足的情況。這里我寫一下我同步完后的空間占用情況。
ps:這個(gè)內(nèi)容網(wǎng)上也沒有哦~我也是獨(dú)一份哈哈~
[root@server rhel7]# du -ah --max-depth=1
18G? ?? ???./epel
7.0G? ?? ???./rhel-7-server-e4s-optional-rpms
5.1G? ?? ???./rhel-7-server-eus-optional-rpms
293M? ?? ???./rhel-7-server-extras-rpms
7.0G? ?? ???./rhel-7-server-optional-rpms
5.1G? ?? ???./rhel-7-server-rpms
362M? ?? ???./rhel-ha-for-rhel-7-server-rpms
42G? ?? ???.
另外我上面提到了GPG公鑰要放在網(wǎng)站根目錄??赡苡信笥巡恢拦€在哪里,我這里再啰嗦一嘴:
公鑰如果你已經(jīng)開啟了倉庫,會(huì)自動(dòng)在/etc/pki/rpm-gpg目錄里生成。有些公鑰可能是需要下載個(gè)東西,例如EPEL的下載東西會(huì)提示是否同意使用該鑰匙,按Y同意后就有了。你弄好倉庫后把這堆公鑰直接都拷走就得。
還有一個(gè)方法,就是在紅帽的官網(wǎng)上可以下載。不過我個(gè)人覺得,有種脫了褲子放屁的感覺。在源節(jié)點(diǎn)上能搞定的事情,何必跑官網(wǎng)上下載半天呢,你說是吧~