antony@notes:~/suse$ cat "Set-up-SUSE-Manager-Synchronization-with-RMT-Server.md"
Set up SUSE Manager Synchronization with RMT Server
Setting Up SUSE Manager to Synchronize with the RMT Server
Preface
本篇文章會介紹,如何將 RMT Server 到 SCC 下載的套件儲存庫同步到 SUSE Mangaer Server
可以透過點擊展開以下目錄,選擇想看的內容,跳轉至特定章節
:::warning
:::spoiler {state=“open”} 文章目錄
[TOC]
:::
實作目標
在全離線的 SUSE Manager 環境中,透過 RMT Server 使用外部網路連線到 SUSE Customer Center 下載套件。
所有 software channels 和 repositories 都匯出到 RMT Server 上的 NFS Share Storage 上,然後 SUSE Manager Server 透過掛載 NFS 的共享目錄區來同步套件。
環境介紹
- 一台機器同時扮演 RMT Server 和 NFS Server 的角色
- NFS Server 的目錄區會獨自使用一顆 Disk 並且做成 LVM
- 一台 SUSE Manager Server
1. 環境準備
1.1. 建立 LVM
## 建立 PV
$ sudo pvcreate /dev/sdb
## 建立 VG
$ sudo vgcreate nfsvg /dev/sdb
## 建立 LV
$ sudo lvcreate -n nfslv -l +100%FREE nfsvg
## 將 LVM 格式化為 XFS 檔案系統
$ sudo mkfs.xfs /dev/nfsvg/nfslv1.2. 建立共享目錄區
$ sudo mkdir /var/nfs_repo && sudo chown _rmt:nginx /var/nfs_repo/此目錄區會儲存 RMT Server 上網到 SCC 下載的所有套件,並會使用 NFS 透過網路將資料共享給 SUSE Manager Server 使用
1.3. 將 LV 掛載到 /var/nfs_repo 目錄
$ echo '/dev/nfsvg/nfslv /var/nfs_repo xfs defaults 0 0' | sudo tee -a /etc/fstab
$ sudo mount -a1.4. 安裝 NFS Server
$ sudo zypper -n install nfs-kernel-server1.5. 設定共享資料夾
$ echo '/var/nfs_repo 192.168.11.100/24(rw,sync,no_subtree_check,no_root_squash)' | sudo tee /etc/exports1.6. 啟動 NFS Server 並設為開機自動啟動
$ sudo systemctl enable nfs-server --now1.7. 檢查是否設定正確
$ lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 500G 0 disk
└─nfsvg-nfslv 254:0 0 500G 0 lvm /var/nfs_repo
$ df -hT /var/nfs_repo
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/nfsvg-nfslv xfs 500G 542M 500G 1% /var/nfs_repo1.7. 在 SUSE Manager Server 上掛載 NFS Share Folder
在 SUSE Manager Server 執行以下命令 :
$ sudo mkdir /var/nfs_repo
$ sudo mount -t nfs 192.168.11.100:/var/nfs_repo /var/nfs_repo
$ echo 'haha' > /var/nfs_repo/test1.8. 回到 NFS Server 的機器確認
$ cat /var/nfs_repo/test && sudo rm /var/nfs_repo/test螢幕輸出
haha2. Synchronize RMT Server
2.1. PreRequest
- 已建立 RMT Server
2.2. 檢視已同步的 Package Repositories
$ sudo rmt-cli repos list螢幕輸出 :
+------+-----------------------------+------------+---------+-------------------------+
| ID | Product | Mandatory? | Mirror? | Last mirrored |
+------+-----------------------------+------------+---------+-------------------------+
| 3878 | RES-8-Updates for x86_64 | Mandatory | Mirror | 2023-11-28 00:35:55 UTC |
| 3921 | RES-AS-8-Updates for x86_64 | Mandatory | Mirror | 2023-11-28 00:37:16 UTC |
| 3924 | RES-CB-8-Updates for x86_64 | Mandatory | Mirror | 2023-11-28 00:37:30 UTC |
| 5963 | SLL-9-Updates for x86_64 | Mandatory | Mirror | 2023-11-28 00:38:12 UTC |
| 5966 | SLL-AS-9-Updates for x86_64 | Mandatory | Mirror | 2023-11-28 00:38:42 UTC |
| 5969 | SLL-CB-9-Updates for x86_64 | Mandatory | Mirror | 2023-11-28 00:38:52 UTC |
+------+-----------------------------+------------+---------+-------------------------+
Only enabled repositories are shown by default. Use the '--all' option to see all repositories.2.3. Export the synchronized data to NFS Share storage
$ sudo rmt-cli export data /var/nfs_repoStore SCC data in files at
/var/nfs_repoFolder
螢幕輸出 :
I, [2023-12-07T19:45:51.716586 #1900] INFO -- : Exporting data from SCC to /var/nfs_repo
I, [2023-12-07T19:45:51.716843 #1900] INFO -- : Exporting products
I, [2023-12-07T19:46:29.160945 #1900] INFO -- : Exporting repositories
I, [2023-12-07T19:46:40.768586 #1900] INFO -- : Exporting subscriptions
I, [2023-12-07T19:46:41.701698 #1900] INFO -- : Exporting orders2.4. Export the enabled repositories to NFS Share storage
$ sudo rmt-cli export settings /var/nfs_repo/ && sudo rmt-cli export repos /var/nfs_repo/Store repository settings and Mirror repos at
/var/nfs_repoFolder
螢幕輸出 :
...以上省略
I, [2023-12-07T22:09:16.418825 #1924] INFO -- : ↓ ruby-libguestfs-1.50.1-6.el9.x86_64.rpm3. Synchronize a Disconnected Server
- SSH 連線至 SUSE Manager Server