正版RHEL使用reposync搭建本地源倉庫實(shí)現(xiàn)內(nèi)網(wǎng)部署

說起來這個(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)上下載半天呢,你說是吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容