- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
CentOS 7遷移到Anolis OS 8
歡迎來到藍(lán)隊云技術(shù)小課堂,每天分享一個技術(shù)小知識。
CentOS7.x到Anolis OS 8,無論是內(nèi)核,基礎(chǔ)軟件包,工具鏈都發(fā)生了較大的變化。遷移工具需要考慮這些變化帶來的兼容性問題。OpenAnolis社區(qū)提供的遷移工具leapp包含了遷移評估,遷移實施,配置還原等步驟,用于實現(xiàn)CentOS7.x到Anolis OS 8的就地遷移。
leapp掃描待遷移系統(tǒng),搜集內(nèi)核,軟件包,系統(tǒng)配置基礎(chǔ)信息,同時與目標(biāo)系統(tǒng)(Anolis OS)進行對比分析,對于不兼容項給出影響分析和解決方案。如內(nèi)核角度給出Anolis OS 中不再支持的內(nèi)核特性,硬件驅(qū)動;軟件角度給出系統(tǒng)命令的變更項,提示用戶適配業(yè)務(wù)程序。leapp的遷移評估報告會給出當(dāng)前系統(tǒng)中所有可能影響到遷移的影響項目,當(dāng)這些影響項目都被解決后,用戶才能夠繼續(xù)做遷移實施。同時業(yè)務(wù)程序可根據(jù)評估報告中的兼容性提示來適配遷移業(yè)務(wù)程序。
leapp首先搜集當(dāng)前的系統(tǒng)信息,記錄需要在重啟后恢復(fù)的配置(如selinux狀態(tài))。遷移實施過程中,工具首先按照當(dāng)前系統(tǒng)安裝的軟件包列表,并根據(jù)CentOS7.x到Anolis OS 8的軟件包映射關(guān)系,從Anolis OS repo上提前下載遷移所需要的軟件包,并基于Anolis OS的軟件包制作upgrade-initramfs,在下一次重啟后,系統(tǒng)自動進入upgrade-initramfs,并觸發(fā)所有軟件包的就地升級。在所有的軟件包就地升級完成后,自動重啟進入系統(tǒng)配置還原階段,待所有的信息都完成配置后,系統(tǒng)重啟進入新的OS,完成OS的就地遷移。
1. 如果待遷移系統(tǒng)無法訪問龍蜥 mirror,首先建議在內(nèi)網(wǎng)搭建一套本地yum源。(如何做本地yum源 用戶名: rsync_user , 密碼: Rsync@2020) ,然后通過本地源安裝遷移工具。假設(shè)本地源地址為 http:///local.repo.com/anolis , 則下載遷移工具軟件源:
wget http:///local.repo.com/anolis/migration/anolis-migration.repo -O /etc/yum.repos.d/anolis-migration.repo
2. 然后執(zhí)行下述命令將 /etc/yum.repos.d/anolis-migration.repo 里面的baseurl地址替換為本地源地址。
sed -i "s#baseurl=https:///mirrors.openanolis.cn/#baseurl=http:///local.repo.com/#" /etc/yum.repos.d/anolis-migration.repo
sed -i "s#gpgkey=https:///mirrors.openanolis.cn/#gpgkey=http:///local.repo.com/#" /etc/yum.repos.d/anolis-migration.repo
3. 安裝遷移工具:
yum install -y python-pip
yum remove -y python-requests python-urllib3; /usr/bin/pip2 uninstall requests urllib3 -y 2>/dev/null || echo "not installed"
yum -y install leapp
備注:重新安裝 python-requests 和 python-urllib3 是為了解決遷移過程中可能發(fā)生的軟件包升級沖突。
4. 執(zhí)行下述命令將 /etc/leapp/files/leapp_upgrade_repositories.repo 里面的baseurl地址替換為本地源地址。
leapp customrepo --seturl http:///local.repo.com/<version_number>
1. 如果待遷移系統(tǒng)可以聯(lián)網(wǎng),則下載遷移工具軟件源:
wget https:///mirrors.openanolis.cn/anolis/migration/anolis-migration.repo -O /etc/yum.repos.d/anolis-migration.repo
2. 安裝遷移工具:
yum install -y python-pip
yum remove -y python-requests python-urllib3; /usr/bin/pip2 uninstall requests urllib3 -y 2>/dev/null || echo "not installed"
yum -y install leapp
成功部署工具后,運行工具的評估命令來對系統(tǒng)環(huán)境進行掃描評估:
leapp preupgrade --no-rhsm
上述命令是默認(rèn)評估遷移到帶 ANCK 內(nèi)核的龍蜥OS,如果你想評估遷移到帶 RHCK 內(nèi)核的龍蜥OS請執(zhí)行下面的命令
leapp preupgrade --no-rhsm --disablerepo=anolis_plus
評估命令執(zhí)行完成后,會生成評估報告,在/var/log/leapp/leapp-report.txt中,報告中詳細(xì)列舉出當(dāng)前OS與目標(biāo)OS系統(tǒng)間的升級分析報告,每一個報告點都包含影響等級,影響范圍以及解決方案。
當(dāng)評估工具認(rèn)為報告點影響到了OS的就地升級,這些報告點問題就必須解決,否則無法實施就地遷移。
報告樣式如下,包含影響等級,影響概述,影響詳細(xì)信息,推薦解決方案。
上述報告提示用戶在Anolis OS中默認(rèn)沒有python命令,系統(tǒng)中默認(rèn)提供的是不向前兼容的python3,并且python2只是有限支持,用戶需要盡快將業(yè)務(wù)程序盡快遷移到使用python3。同時報告也給出了解決方案來使系統(tǒng)默認(rèn)提供python命令。
遷移評估報告中一旦遇到影響到就地遷移的因素,會禁止做遷移實施,將這些影響因素都解決后才能夠繼續(xù)實施遷移。如果遇到影響遷移實施的因素,遷移評估結(jié)果顯示如下:
按照報告的提示,在/var/log/leapp/leapp-report.txt可以獲取到詳細(xì)的報告信息,同時UPGRADE INHIBITED給出的影響升級的因素也可以在/var/log/leapp/answerfile文件中查看。
# cat /var/log/leapp/answerfile
[remove_pam_pkcs11_module_check]
# Title: None
# Reason: Confirmation
# =================== remove_pam_pkcs11_module_check.confirm ==================
# Label: Disable pam_pkcs11 module in PAM configuration? If no, the upgrade process will be interrupted.
# Description: PAM module pam_pkcs11 is no longer available in Anolis 8 since it was replaced by SSSD.
# Type: bool
# Default: None
# Available choices: True/False
# Unanswered question. Uncomment the following line with your answer
# confirm =
解決方案,在新的Anolis OS 8中不再支持pam_pkcs11,所以我們直接選擇刪除該不支持的選項:
leapp answer --section remove_pam_pkcs11_module_check.confirm=True
Anolis OS 8中默認(rèn)的PermitRootLogin行為是prohibit-password,禁止root用戶登陸,如果不顯式設(shè)置PermitRootLogin yes則會在遷移后影響root用戶密碼登陸。
解決方案:修改sshd_config 配置文件,允許root用戶登錄
sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
解決了上述影響因素后,可以再次執(zhí)行l(wèi)eapp preupgrade --no-rhsm或者 leapp preupgrade --no-rhsm --disablerepo=anolis_plus 再次評估是否有影響遷移的因素。若沒有影響遷移的因素,結(jié)果如下:
解決了評估報告中所有影響就地遷移的問題后,即可實施遷移。
leapp upgrade --no-rhsm
上述命令是默認(rèn)遷移到帶 ANCK 內(nèi)核的龍蜥OS,如果你想遷移到帶 RHCK 內(nèi)核的龍蜥OS請執(zhí)行下面的命令
leapp upgrade --no-rhsm --disablerepo=anolis_plus
該步驟涉及到從目標(biāo)系統(tǒng)(Anolis OS repo)上下載軟件包用于就地升級,確保待遷移環(huán)境能夠正常訪問Anolis OS repo。
上述命令執(zhí)行成功后,還可以通過/var/log/leapp/leapp-report.txt查看遷移報告,該報告除了包含評估報告外,還包含對目標(biāo)系統(tǒng)repo的可行性評估,如果目標(biāo)系統(tǒng)軟件包不符合遷移要求,會給出提示。
以下圖為例,Anolis OS 8中不再支持kde,評估報告中給出了這樣的提示:
一切就緒,執(zhí)行結(jié)果如下:
接下來需要執(zhí)行 reboot 命令,reboot后OS進入一個隔離環(huán)境自動進行實質(zhì)的遷移操作。
待系統(tǒng)遷移完成后,OS 會再次自動重啟進入遷移后的系統(tǒng)。這一步驟涉及到2次OS重啟以及相關(guān)的遷移操作故耗時較長。
就地遷移完成后,進入新的操作系統(tǒng),可以通過/var/log/leapp/leapp-report.txt查看遷移報告,報告中會包含就地遷移以及遷移后的系統(tǒng)詳細(xì)報告信息,也可以通過/var/log/leapp/leapp-upgrade.txt查看就地遷移的執(zhí)行日志。
查看報告/var/log/leapp/leapp-report.txt可以獲取升級過程中的一些信息,比如因為某些原因軟件包沒有升級成功,需要手動處理這些軟件包。
/var/log/leapp/leapp-upgrade.txt則記錄了整個遷移過程,
遷移完成后,可通過一系列基礎(chǔ)操作查看OS版本,如/etc/os-release查看OS版本。
遷移完成后,應(yīng)用程序可以通過自身的指標(biāo)查看是否能夠正常運行。
1)執(zhí)行“l(fā)eapp upgrade --no-rhsm”時出現(xiàn)因網(wǎng)絡(luò)問題下載軟件包失敗,如何解決?
修改/etc/leapp/files/leapp_upgrade_repositories.repo文件,將mirrors.openanolis.cn替換為mirrors.aliyun.com
2) 待遷移環(huán)境需要配置代理訪問外網(wǎng),leapp運行過程中下載軟件包報錯,如何解決?
leapp執(zhí)行過程中真正生效的repo是/etc/leapp/files/leapp_upgrade_repositories.repo,修改/etc/leapp/files/leapp_upgrade_repositories.repo 文件,為每個repo配置代理,
3)如何確認(rèn)遷移前后軟件包變化?
使用leapp進行OS遷移后,可通過遷移日志/var/log/leapp/leapp-upgrade.log查看軟件包更新詳細(xì)信息。
4)就地遷移失敗是否可回滾?
遷移工具不支持回滾,遷移失敗無法恢復(fù)到遷移初始狀態(tài),遷移前務(wù)必做好系統(tǒng)備份。
藍(lán)隊云官網(wǎng)上擁有完善的技術(shù)支持庫可供參考,大家可自行查閱,更多技術(shù)問題,可以直接咨詢。同時,藍(lán)隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。
更多技術(shù)知識,藍(lán)隊云期待與你一起探索。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP