Skip to content

antony@notes:~/suse$ cat "Set-up-SUSE-Manager-Synchronization-with-RMT-Server.md"

Set up SUSE Manager Synchronization with RMT Server

2023-12-07· suse ·SUSE Manager

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/nfslv

1.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 -a

1.4. 安裝 NFS Server

$ sudo zypper -n install nfs-kernel-server

1.5. 設定共享資料夾

$ echo '/var/nfs_repo 192.168.11.100/24(rw,sync,no_subtree_check,no_root_squash)' | sudo tee /etc/exports

1.6. 啟動 NFS Server 並設為開機自動啟動

$ sudo systemctl enable nfs-server --now

1.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_repo

1.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/test

1.8. 回到 NFS Server 的機器確認

$ cat /var/nfs_repo/test && sudo rm /var/nfs_repo/test

螢幕輸出

haha

2. 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_repo

Store SCC data in files at /var/nfs_repo Folder

螢幕輸出 :

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 orders

2.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_repo Folder

螢幕輸出 :

...以上省略
I, [2023-12-07T22:09:16.418825 #1924]  INFO -- : ↓ ruby-libguestfs-1.50.1-6.el9.x86_64.rpm

3. Synchronize a Disconnected Server

  1. SSH 連線至 SUSE Manager Server