使用鏡像檢測工具檢測并修復(fù)鏡像
將自定義鏡像導(dǎo)入阿里云平臺前,建議您使用鏡像檢測工具sersi檢測鏡像是否符合導(dǎo)入條件,并針對異常鏡像進(jìn)行修復(fù),確保自定義鏡像的質(zhì)量,以便在阿里云平臺上順利部署功能齊全、兼容性良好的ECS實(shí)例。本文為您介紹如何使用sersi工具檢測并修復(fù)鏡像。
sersi工具介紹
sersi工具是阿里云平臺推出的鏡像檢測修復(fù)工具。sersi工具在檢測并修復(fù)鏡像過程中,自動完成以下任務(wù):
掃描鏡像中的系統(tǒng)及服務(wù)配置并輸出檢測報(bào)告,檢測報(bào)告中會詳細(xì)描述鏡像系統(tǒng)信息以及檢測出的異常信息。
結(jié)合異常信息自動生成相應(yīng)的修復(fù)腳本,執(zhí)行修復(fù)命令修復(fù)鏡像。
使用限制
不支持FreeBSD、Fedora CoreOS以及Windows Server系統(tǒng)。
操作步驟
步驟1:檢測鏡像
使用root用戶登錄制作鏡像的虛擬機(jī)。
依次運(yùn)行以下命令,下載并解壓sersi工具。
wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/imagecheck/sersi.tar.gz tar -xf sersi.tar.gz
如果您的虛擬機(jī)可以訪問公網(wǎng),您也可以通過瀏覽器下載sersi工具。
執(zhí)行以下命令,運(yùn)行檢測工具。
./main.sh --target=image --diagnostic
檢測工具主要檢查以下配置項(xiàng):
等待檢測工具檢測完成,檢測結(jié)果類似如下信息。
------------------------------------------------------------ OS: Alibaba Cloud Linux 3 Kernel: 5.10.134-16.3.al8.x86_64 Arch: x86_64 RTC-Mode: utc Boot-Mode: UEFI ------------------------------------------------------------ Image Check Result Virtio [OK] Nvme [OK] Fstab [OK] Grub [OK] Dhcp [OK] Selinux [OK] OnlineResizeFS [OK] CloudAssistant [OK] CloudInit [OK] SecurityCenterAgent [OK] SupportMocInstanceTypes [OK] DiskUsage [OK] InodeUsage [OK] SystemFileAttribute [OK] CriticalUser [OK] QemuGuestAgent [OK] SshConfig [OK] Firewall [OK] Total case Count 18 Successes: 18 Failures: 0 Warnings: 0 ------------------------------------------------------------
檢測工具會根據(jù)檢測項(xiàng)的等級給出
OK
、FAILED
或WARNING
檢測結(jié)果。OK
:檢測項(xiàng)均符合要求。FAILED
:檢測項(xiàng)不符合要求,使用該自定義鏡像創(chuàng)建的ECS實(shí)例會出現(xiàn)無法正常啟動、網(wǎng)絡(luò)異常等嚴(yán)重問題,建議您參考步驟2:修復(fù)鏡像,修復(fù)報(bào)錯項(xiàng)后再導(dǎo)入鏡像。WARNING
:檢測項(xiàng)不符合要求,使用該自定義鏡像創(chuàng)建的ECS實(shí)例缺少云安全中心保護(hù)、無法使用云助手自動化運(yùn)維等問題,建議您參考步驟2:修復(fù)鏡像,修復(fù)報(bào)錯項(xiàng)后再導(dǎo)入鏡像,以提高您云上的運(yùn)維效率。
步驟2:修復(fù)鏡像
執(zhí)行以下命令,自動修復(fù)鏡像。
./main.sh --target=image --run <case> [--debug] [--dry-run] [-y]
上述命令涉及的參數(shù)說明如下表所示, 請您根據(jù)實(shí)際情況進(jìn)行配置:
參數(shù) | 是否必選 | 說明 |
| 是 | 表示運(yùn)行需要修復(fù)的檢測項(xiàng)目。當(dāng)前支持的檢測項(xiàng)有
|
| 否 | 添加該參數(shù)表示增加debug日志打印。 |
| 否 |
|
| 否 |
|
sersi工具修復(fù)鏡像時執(zhí)行的腳本無法回滾,對系統(tǒng)的修改無法撤銷,因此強(qiáng)烈建議您:
先添加
[--dry-run]
參數(shù),僅查看修復(fù)腳本,不執(zhí)行修復(fù)腳本,sersi工具會將修復(fù)腳本保存至cache目錄中,您可以查看或調(diào)試。確保無誤后,無需添加[--dry-run]
參數(shù)即可執(zhí)行修復(fù)腳本,進(jìn)行修復(fù)操作。先不要添加
-y
參數(shù),表示進(jìn)行交互確認(rèn)后再執(zhí)行修復(fù)腳本,避免修復(fù)腳本導(dǎo)致的意外更改或數(shù)據(jù)丟失。
對于不支持通過sersi工具自動修復(fù)的檢測項(xiàng),您也可以手動進(jìn)行修復(fù)。
檢測項(xiàng) | 工具自動修復(fù) | 工具修復(fù)命令 | 手動修復(fù)方法 |
Virtio | 工具在dracut配置文件中增加virtio驅(qū)動配置,重新生成帶有virtio驅(qū)動的initrd文件。 |
| |
Nvme | 工具在dracut配置文件中增加NVMe驅(qū)動配置,重新生成帶有NVMe驅(qū)動的initrd文件。同時會在grub配置中增加 重要 修復(fù)完成后,需要您手動重啟系統(tǒng)才能生效。 |
| |
Fstab | 工具會注釋/etc/fstab異常的掛載項(xiàng)。 |
| 如何正確配置/etc/fstab,請參見在fstab文件中配置UUID方式自動掛載數(shù)據(jù)盤。 |
Grub | 工具會修改grub中 |
| 如何為鏡像生成正確的配置grub文件,請參見Linux實(shí)例的grub啟動配置錯誤。 |
Dhcp | 工具會配置網(wǎng)絡(luò)服務(wù)配置文件,配置文件中網(wǎng)卡設(shè)備命名是eth0,設(shè)置 重要 修復(fù)完成后,需要您手動重啟系統(tǒng)才能生效。 |
| 如何設(shè)置鏡像網(wǎng)絡(luò)配置模式為DHCP,請參見如何在Linux鏡像中配置網(wǎng)絡(luò)為DHCP。 |
Selinux | 工具會修改配置文件 重要 修復(fù)完成后,需要您手動重啟系統(tǒng)才能生效。 |
| 如何關(guān)閉SELinux,請參見開啟或關(guān)閉SELinux。 |
OnlineResizeFS | 工具會在系統(tǒng)中配置growpart腳本,實(shí)例支持根分區(qū)擴(kuò)容。 |
|
|
CloudInit | 工具會為系統(tǒng)臨時配置軟件倉庫源,通過系統(tǒng)中的包管理器安裝cloud-init軟件包,并設(shè)置cloud-init配置文件,設(shè)置數(shù)據(jù)源為阿里云。 |
| |
DiskUsage | 不支持,只能通過手動修復(fù)。 | 不涉及 | 手動刪除不必要文件。 |
InodeUsage | 不支持,只能通過手動修復(fù)。 | 不涉及 | 手動刪除不必要文件。 |
SystemFileAttribute | 支持。 工具會刪除檢測出來的異常文件的屬性。 |
| 不要使用 |
CriticalUser | 不支持,只能通過手動修復(fù)。 | 不涉及 | 保留root賬號。 |
QemuGuestAgent | 支持。 工具會卸載qemu-guestos-agent。 |
| 卸載qemu-guestos-agent。 |
SshConfig | 支持。 工具會開啟sshd中的密碼認(rèn)證和root用戶登錄。 |
| 檢查sshd配置文件。 |
Firewall | 支持。 工具會關(guān)閉防火墻服務(wù)。 |
| 關(guān)閉系統(tǒng)防火墻服務(wù)。 |
LibDirectory | 不支持,只能通過手動修復(fù)。 | 不涉及 | 鏈接文件/lib和/lib64的指向位置不能為絕對路徑,修改指向位置為相對路徑。 |
SupportMocInstanceTypes | 不支持,只能通過手動修復(fù)。 | 不涉及 | 不支持神龍規(guī)格的系統(tǒng)通常是已經(jīng)EOL不再維護(hù)的低版本系統(tǒng),阿里云建議您盡早更新升級,使用各發(fā)行廠商正在維護(hù)更新的操作系統(tǒng)版本。 |
CloudAssistant | 支持。 工具會安裝云助手。 |
| |
SecurityCenterAgent | 支持。 工具會安裝阿里云云安全中心客戶端。 |
|
2024-07-19 17:20:54,480 root [INFO]: sersi run finished, print summary report
2024-07-19 17:20:54,480 root [INFO]: casename: cloudinit NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: virtio OK
2024-07-19 17:20:54,480 root [INFO]: casename: nvme OK_Need_Reboot
2024-07-19 17:20:54,480 root [INFO]: casename: fstab NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: grub NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: dhcp NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: selinux NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: growpart NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: aegis NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: assist DRY_RUN
2024-07-19 17:20:54,480 root [INFO]: casename: firewall NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: sshd NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: systemfileattribute NO_FOUND_RISK
2024-07-19 17:20:54,480 root [INFO]: casename: qemu_guest_agent FAILED
修復(fù)結(jié)束后,工具會根據(jù)修復(fù)情況生成以下修復(fù)結(jié)果:
OK
:表示該項(xiàng)修復(fù)成功。NO_FOUND_RISK
:表示檢測鏡像中未找到該項(xiàng)的異常。OK_Need_Reboot
:表示該項(xiàng)修復(fù)完成需重啟系統(tǒng)才能生效。DRY_RUN
:表示找到該項(xiàng)的異常并通過dry-run模式運(yùn)行僅打印修復(fù)腳本,但未執(zhí)行修復(fù)。FAILED
:表示該項(xiàng)修復(fù)失敗。
相關(guān)文檔
通過工具檢測鏡像符合規(guī)范后,您可以獲取Linux鏡像文件,并將鏡像文件導(dǎo)入阿里云平臺。
您也可以在鏡像導(dǎo)入阿里云平臺時,通過鏡像檢測功能檢測鏡像配置是否正常,并通過系統(tǒng)運(yùn)維管理 OOS(CloudOps Orchestration Service)進(jìn)行一鍵修復(fù)。更多信息,請參見導(dǎo)入自定義鏡像和鏡像檢測概述。