Oracle Linux local mirror

因近期CentOS 8 即將於2021/12底停止更新,公司部分Linux主機開始移轉至Rocky Linux 8以及Oracle Linux 8,Rocky Linux 8官方支援直接使用rsync可以很容易的產生local mirror,Oracle Linux 8官方因不支援rsync方式,需要改用reposync這隻程式來mirror

參考資料:

  1. https://oracle-base.com/articles/linux/create-a-local-yum-repository-for-oracle-linux-8
  2. https://access.redhat.com/solutions/23016#rhel8

從Oracle KB上找到的SOP經實測無法更新,操作步驟如下

  1. 新增第一台VM,使用ISO DVD安裝Oracle Linux 8.4
  2. 使用參考資料1的SOP透過reposync, createrepo兩個指令mirror OracleLinux8最新套件
  3. 新增第二台VM,同樣使用ISO DVD安裝Oracle Linux 8.4
  4. 修改第二台VM的/etc/yum.repos.d內檔案,指向第一台VM local mirror
  5. 從第二台VM執行dnf update,出現下面錯誤訊息

google與repodata相關錯誤訊息,發現RHEL8之後的版本,似乎不用再透過createrepo方式建立repodata (參考資料2有詳細說明)

調整作法

  1. 新增第一台VM,使用ISO DVD安裝Oracle Linux
  2. 使用參考資料1的SOP透過reposync,指令mirror OracleLinux8最新套件 (跳過createrepo相關指令,且reposync新增下載repodata參數),調整後的腳本如下
#!/bin/bash

LOG_FILE=/dpool/OracleLinux/logs/repo_sync_$(date +%Y.%m.%d).log

# Remove old logs
find /dpool/OracleLinux/logs/repo_sync* -mtime +5 -delete; >> $LOG_FILE 2>&1

# Sync repositories
/usr/bin/reposync --download-metadata --newest-only --repoid=ol8_baseos_latest -g -p /dpool/OracleLinux >> $LOG_FILE 2>&1
/usr/bin/reposync --download-metadata --newest-only --repoid=ol8_UEKR6 -g -p /dpool/OracleLinux >> $LOG_FILE 2>&1
/usr/bin/reposync --download-metadata --newest-only --repoid=ol8_appstream -g -p /dpool/OracleLinux >> $LOG_FILE 2>&1

#/usr/bin/createrepo /dpool/u01/repo/OracleLinux/ol8_baseos_latest/getPackage/ >> $LOG_FILE 2>&1
#/usr/bin/createrepo /dpool/u01/repo/OracleLinux/ol8_UEKR6/getPackage/ >> $LOG_FILE 2>&1
#/usr/bin/createrepo /dpool/u01/repo/OracleLinux/ol8_appstream/getPackage/ >> $LOG_FILE 2>&1
Facebook Comments Box