Samba AD 升級
BUBU 因專案需求需要把 Samba AD 更新到最新版本,本篇記錄怎麼把做更新升級方式。
運行環境
環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
- 系統環境: Ubuntu 24.04 TLS(KVM)
安裝過程
採用 Ubuntu 20.04 TLS 升級到 Ubuntu 24.04 TLS ,Samba 版本為 4.15 更新到 4.19 版本,BUBU 試了很多更新方式,最後用一台加入當備援及臨時角色用,舊環境的版本就先從非主要角色的控制站先退出後面,在用新系統版本同樣名稱及 IP 做替換更新,以確保資料都能同步到。
- 情境是有三台 Ubuntu 20.04 TLS 上面搭配了 Samba AD 4.15 版本,因 OS 維護週期要到因此要升級到 Ubuntu 24.04 TLS 所搭配 Samba AD 4.19 版本,但 BUBU 在這裡提醒一下,在做版本更新同時建議先把舊的三台先做備份或快照避免更新過中發生失敗,還可以還原服務
因是 Samba AD 服務,更新要很注意記得更新前要把所有的站台服務都要快照或者備份,避免更新失敗就還原不過去。本篇的記錄是試了不同情境最後比較保險的做法。
備援及臨時角色機
-
先建立一台 DC4 控制站,並且把這台控制站加入到舊版本的網域環境,並且讓系統自己去做同步原先的站台服務相關資料。建立方式可以參考本站所編寫如何加入 Samba AD 服務,如何加入控制站方式
-
加入完之後先確認資料是否有同步過來,可以用以下指令去查看
# 查詢使用者清單
wbinfo -u
# 查詢群組清單
wbinfo -g
- 查看 AD 抄寫設定資訊
samba-tool drs showrepl
-
建議在要每一台的
/etc/hosts
及/etc/resolv.conf
這兩個設定檔要有這一台備援機的連線資訊。 -
以上確認沒有問題的話,可以考慮先從非主角色的 DC 主機進行做替換。
替換方式
- 先確認主要角色是由那台在執行
samba-tool fsmo show
- 先把非主角色的 DC 做退出控制群,輸入以下的指令會請您填入管理者的密碼,輸入完之後系統就會開始執行跑退出流程,圖片後補,例如 DC3
samba-tool domain demote --username=Administrator
- 完成退出作業後,建議把該站台就直接關機不要再開機了
init 0
- 在主角色站台把您剛剛所退出的控制站在清除一次
samba-tool domain demote --remove-other-dead-server=dc3
- 一樣在主角色站台執行站台資訊確認
samba-tool dbcheck --reindex
samba-tool dbcheck --fix
samba-tool dbcheck --cross-ncs --fix
-
再建一台 Ubuntu 24.04 TLS 版本,主機名稱及 IP 相關資訊就以您所退出的站台,例如 DC3
-
再加入控制網域的方式請參考本站所編寫,如何加入控制站方式
-
以上方式以此類推把非主角色的控制站都是這樣子做,剩下最後還沒有更新到的控制站如果沒有意外都是 DC1 這一台或者第一台所建立的控制站,要注意角色問題,如果沒有把主角指定由其他控制站接手處理的話,有機會會造成整個網域控制站會有異常到時服務會無法正常運行,最後這一台主要的控制站要把角色先指派給 DC4 或備援機 來臨時處理。
-
主要角色指定到 DC4 或備援機,先到 DC4 或備援機 登入,輸入以下的參數
samba-tool fsmo transfer --role=all -U administrator
- 角色說明
FSMO 角色名稱 | 層級 | 功能說明 |
---|---|---|
Schema Master | 樹系級 | 控制 AD 架構變更 |
Domain Naming Master | 樹系級 | 控制新增或刪除網域 |
RID Master | 網域級 | 分配帳號用的識別碼區段 |
PDC Emulator | 網域級 | 密碼同步、時間同步、NT4 相容性 |
Infrastructure Master | 網域級 | 跨網域物件參照修正 |
DomainDnsZones Master | DNS/網域 | 管理 DomainDnsZones 區域 |
ForestDnsZones Master | DNS/樹系 | 管理 ForestDnsZones 區域 |
- 主要的角色轉移到 DC4 或 備援機 上就可以執行退出網域控制站,然後在建一台新版本的系統加入到此控制台即可。
網域控制站升級
-
原在 Samba AD 控制站版本對應到 Windows Server 版本為 2008R2,最新版本 Samba AD 可以支援對應到 Windows Server 2019 版本
-
網域類型查詢
samba-tool domain level show
- 更新網域控制站可支援 Server 2019 以上版本
samba-tool domain schemaupgrade --schema=2019
- 更新過程
root@dc1:~# samba-tool domain schemaupgrade --schema=2019
Temporarily overriding 'dsdb:schema update allowed' setting
Applying Sch70.ldf updates...
Unable to find attribute msDS-DeviceMDMStatus in the schema
5 changes applied
Applying Sch71.ldf updates...
7 changes applied
Applying Sch72.ldf updates...
5 changes applied
Applying Sch73.ldf updates...
5 changes applied
Applying Sch74.ldf updates...
14 changes applied
Applying Sch75.ldf updates...
6 changes applied
Applying Sch76.ldf updates...
9 changes applied
Applying Sch77.ldf updates...
12 changes applied
Applying Sch78.ldf updates...
7 changes applied
Applying Sch79.ldf updates...
3 changes applied
Applying Sch80.ldf updates...
7 changes applied
Applying Sch81.ldf updates...
4 changes applied
Applying Sch82.ldf updates...
7 changes applied
Applying Sch83.ldf updates...
5 changes applied
Applying Sch84.ldf updates...
7 changes applied
Applying Sch85.ldf updates...
Unable to find attribute msDS-UserAllowedNTLMNetworkAuthentication in the schema
6 changes applied
Applying Sch86.ldf updates...
Unable to find attribute msDS-SourceAnchor in the schema
5 changes applied
Applying Sch87.ldf updates...
9 changes applied
Applying Sch88.ldf updates...
7 changes applied
Schema successfully updated
- 查看更新後版本
ldbsearch --cross-ncs -H /var/lib/samba/private/sam.ldb 'objectClass=dMD' objectVersion