在企業裡,因為不會讓所有伺服器都對外,一般會在內部架設一台 YUM mirror server ,定期去 mirror 外部的 RHEL 套件庫。
坦白說,我不知道用哪個名字比較好,知道的名字有
- Local mirror
- YUM repository server
- YUM mirror server
總之,用途都是一致的。
作法
首先這台要作為 mirror 的伺服器必須要對外,接著在伺服器裡,以 subscription-manager 註冊到 RHEL 服務去。
安裝做 mirror 的套件,這邊選用 apache,也可以用 nginx,路徑跟設定調整一下就可以。
yum install yum-utils createrepo httpd
使用 subscription-manager 查看可以下載的 repository
subscription-manager repos --list
接著對需要做 mirror 的 repository 去做 mirror
mkdir -p /var/www/html/{baseos,appstream}
reposync -p /var/www/html/baseos \
--download-metadata \
--repo=rhel-8-for-x86_64-baseos-rpms \
--delete \
--downloadcomps
reposync -p /var/www/html/appstream \
--download-metadata \
--repo=rhel-8-for-x86_64-appstream-rpms \
--delete \
--downloadcomps
這邊可以寫成一個腳本,然後設定 cron,定期去執行 mirror。
一般會再多寫一個 repo 檔案,放在 /var/www/html ,後續到其他主機時,可以直接下載這個 repo 檔案,放到 /etc/yum.repos.d 裡面,就可以直接 yum update 。
[baseos]
name=baseos
baseurl=http://<ip>/rhel-8-for-x86_64-baseos-rpms/
enabled=1
gpgcheck=0
[appstream]
name=appstream
baseurl=http://<ip>/rhel-8-for-x86_64-appstream-rpms/
enabled=1
gpgcheck=0
最後啟用 httpd,就大功告成了。
systemctl enable --now httpd
限制
使用這個方法,基本上一台主機就是對應一個版本,例如 7.9, 8, 8.5, 8.6 這樣,沒辦法有多個版本,若需要有多個版本,建議使用 Foreman 或是 Satellite 會比較方便。
沒有留言:
張貼留言