ドライバーの欠落や不適切なネットワーク設定など、設定が誤っているカスタムイメージをインポートすると、Elastic Compute Server (ECS) インスタンスの起動失敗やネットワークの問題が発生する可能性があります。Alibaba Cloud の sersi ツールを使用して、インポート前にイメージをスキャン、評価、自動修正することで、デプロイメントの成功率を向上させます。
sersi の修正スクリプトによる変更は元に戻せません。
サポート対象のオペレーティングシステム
このツールは、主要なオペレーティングシステム (OS) ファミリーをサポートしています:
Red Hat シリーズ: Alibaba Cloud Linux、Anolis、Red Hat、CentOS、CentOS Stream、Fedora、AlmaLinux、Rocky Linux、openEuler、および OpenCloudOS。
Debian シリーズ: Debian、Ubuntu、Kylin、および UOS。
SUSE シリーズ: SUSE および openSUSE。
FreeBSD、Fedora CoreOS、および Windows Server システムはサポートされていません。
操作手順
ステップ 1: ツールのダウンロードと解凍
sersiツールパッケージをダウンロードします。wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/imagecheck/sersi.tar.gzツールパッケージを解凍します。
tar -xf sersi.tar.gz
ステップ 2: イメージのチェック
チェックコマンドを実行して、イメージのヘルスレポートを生成します。
すべてのチェック項目についてイメージをスキャンします。
./main.sh --target=image --diagnostic結果を分析します。コマンドはフォーマットされたレポートを出力します。
OK: 項目が Alibaba Cloud のイメージ仕様を満たしています。FAILED(要修正): この項目には、インスタンスの起動を妨げたり、コア機能 (ネットワークなど) の障害を引き起こしたりする可能性のある重大な問題があります。WARNING(修正を推奨): この項目には設定上の問題があります。インスタンスの起動には影響しませんが、一部の高度な機能 (クラウドアシスタントやモニタリングなど) が利用できなくなったり、セキュリティリスクをもたらしたりする可能性があります。
チェック項目の詳細な説明については、「チェック項目と修正項目の概要」をご参照ください。
------------------------------------------------------------ OS: Alibaba Cloud Linux 3 Kernel: 5.10.134-16.1.al8.x86_64 Arch: x86_64 RTC-Mode: utc Boot-Mode: Legacy ------------------------------------------------------------ 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 ------------------------------------------------------------
ステップ 3: イメージの修正
自動修正
修正スクリプトによる変更は元に戻せません。「レビューしてから実行する」という安全なプロセスに従ってください。
sersiツールは、DiskUsage、InodeUsage、CriticalUser、LibDirectory、およびSupportMocInstanceTypes項目を自動的に修正しません。「手動修正」セクションの指示に従って手動で修正してください。
レビュー:
--dry-runパラメーターを使用して、変更を加えずに修正スクリプトを生成し、レビューします。単一の項目を修正するには、「単一のチェック項目を修正する方法
# すべての問題を修正 ./main.sh --target=image --run all --dry-run実行:
スクリプトが安全であることを確認した後、
--dry-runパラメーターを削除して修正を適用します。# 対話型の修正: 各修正ステップを実行する前に確認が求められます。 ./main.sh --target=image --run all修正結果の分析:
OK: 項目は正常に修正されました。NO_FOUND_RISK: この項目に関する問題はイメージ内で見つかりませんでした。OK_Need_Reboot: 修正は完了しましたが、変更を有効にするにはシステムの再起動が必要です。DRY_RUN: ドライランモードで実行されたツールが問題を検出し、実行せずに修正スクリプトを出力しました。FAILED: 修正に失敗しました。手動修正を実行する必要があります。
手動修正
自動で修正できない、または自動修正が失敗した項目については、以下の手動での指示に従ってください。
DiskUsage: 不要なファイルを手動で削除します。InodeUsage: 不要なファイルを手動で削除します。CriticalUser: ルートアカウントを保持します。LibDirectory: /lib および /lib64 のシンボリックリンクは、絶対パスを指してはいけません。相対パスを指すように変更してください。SupportMocInstanceTypes: 神龍 (SHENLONG) インスタンスタイプをサポートしていないシステムは、通常、サポートが終了した (EOL) 古いバージョンです。ベンダーによって積極的にメンテナンスされている OS バージョンにアップグレードしてください。Virtio: virtio ドライバーをインストールします。Nvme: NVMe ドライバーをインストールします。Fstab: /etc/fstab を正しく設定します。Selinux: SELinux を有効または無効にします。OnlineResizeFS: cloud-init と growpart ツールをインストールします。Cloudinit: cloud-init をインストールします。SshConfig: sshd 設定ファイルを確認します。Firewall: システムのファイアウォールサービスを無効にします。CloudAssistant: クラウドアシスタントエージェントをインストールします。SecurityCenterAgent: Security Center エージェントをインストールします。QemuGuestAgent:qemu-guest-agentを手動でアンインストールします。SystemFileAttribute:chattrコマンドを使用して、/etc/shadow などの重要なファイルをロックしないでください。
ステップ 4: 修正の検証
(オプション) システムを再起動します。一部の修正 (
Nvme、Dhcp、およびSelinux) は、有効にするためにシステムの再起動が必要です。チェックコマンドを再度実行し、すべての項目が
OKステータスであることを確認します。./main.sh --target=image --diagnostic
チェック項目と修正項目の概要
チェック項目 (ケース名) | 修正項目 | 影響 | 説明 |
|
| ECS インスタンスの起動に失敗します。 | イメージに virtio ドライバーがインストールされているかどうかをチェックします。Alibaba Cloud の ECS インスタンスは KVM ベースの仮想マシン (VM) であり、仮想ディスクには virtio ドライバーが必要です。 |
|
| ecs.g7se など、NVMe プロトコルベースのクラウドディスクを必要とするインスタンスタイプを使用できません。 | イメージに NVMe ドライバーがインストールされているかどうかをチェックします。ecs.g8i、ecs.g8a、ecs.g9i、ecs.g9a などの一部の ECS インスタンスタイプは、NVMe プロトコルのクラウドディスクを使用し、イメージに NVMe ドライバーが含まれている必要があります。NVMe は、従来のドライバープロトコル (SCSI や virtio-blk など) よりも高速で高い転送帯域幅を提供します。これらのインスタンスタイプをサポートするために、イメージに NVMe ドライバーをインストールしてください。 |
|
| システムの起動に失敗します。 | /etc/fstab の設定が正しいかどうかをチェックします。存在しないマウントデバイスや不正なデバイス UUID などの誤った設定は、システムの起動失敗の原因となります。 |
|
| システムの起動に失敗します。 | GRUB 設定ファイルが正しいかどうかをチェックします。デバイス名ではなく UUID でブートパーティションを指定するなど、設定エラーがあるとシステムの起動に失敗します。 |
|
| システムのネットワーク接続に失敗します。 | ネットワークインターフェースで DHCP が有効になっていることをチェックします。静的アドレッシングは、ネットワーク設定の失敗や接続の問題につながる可能性があります。GRUB のカーネルブートパラメーターに |
|
| ECS インスタンスの起動に失敗します。 | SELinux が無効になっているかどうかをチェックします。SELinux を無効にしてください。 |
|
| インスタンスのルートパーティションのサイズを変更できません。 | イメージが初回起動時にルートパーティションとファイルシステムを自動拡張できるか (cloud-init または growpart 経由で) をチェックします。例えば、10 GB のイメージを 100 GB のシステムディスクいっぱいに拡張できます。詳細については、「パーティションとファイルシステムの拡張 (Linux)」をご参照ください。 |
|
| システムの初期化設定が欠落しています。 | cloud-init がインストールされていることをチェックします。cloud-init は起動時に NTP、パッケージリポジトリ、ホスト名、SSH キーペアを設定し、インスタンスのユーザーデータスクリプトを実行します。 |
|
| インスタンスへの SSH 接続に失敗します。 | sshd サービスの設定ファイル (通常は /etc/ssh/sshd_config) が正しいかどうかをチェックします。 sshd 設定ファイルが正しくない場合、sshd サービスが起動に失敗し、その結果 ECS インスタンスへの SSH 接続が失敗する可能性があります。ファイルを確認するには:
|
|
| システムのファイアウォールがインスタンスへのアクセスをブロックする可能性があります。 | ファイアウォールサービスが有効になっているかどうかをチェックします。システムのファイアウォールサービスを無効にし、ECS のセキュリティグループを使用して、ご利用のクラウドインスタンスのインバウンドおよびアウトバウンドトラフィックを一元管理します。 |
|
| クラウドの運用保守 (O&M) が不便になります。 | イメージにクラウドアシスタントがインストールされているかどうかをチェックします。クラウドアシスタントは、効率的な運用保守を可能にする ECS 向けのネイティブな自動化ツールです。イメージにクラウドアシスタントサービスをインストールしてください。 |
|
| Security Center の保護がないと、インスタンスの脆弱性を特定できません。 | Security Center エージェントがインストールされているかどうかをチェックします。サーバーが Security Center によって保護されるためには、エージェントをインストールする必要があります。 |
|
| インスタンスの機能が正しく動作しない可能性があります。 |
このソフトウェアはインストールされると VM 上で実行され、ホストマシンと通信します。これにより、一部の ECS サービスが利用できなくなり、インスタンスの機能が不完全になる可能性があります。 |
| サポート対象外 | システムの起動に失敗します。 | ディスク領域使用量が正常かどうかをチェックします。 コマンドを実行してディスク領域使用量を確認し、十分な空き容量があることを確認できます。 |
| サポート対象外 | システムの起動に失敗します。 | ディスクの inode 使用量が正常かどうかをチェックします。 |
|
| インスタンスの起動に失敗するか、機能が異常になります。 | 重要なシステム設定ファイルのファイル属性が正しいかどうかをチェックします。 |
| サポート対象外 | インスタンスの起動に失敗するか、機能が異常になります。 | クリティカルユーザー (root など) が存在するかどうかをチェックします。クリティカルユーザーが欠落していると、システムの起動が異常になったり、インスタンスへのリモート接続が妨げられたりする可能性があります。 |
| サポート対象外 | システムの機能が異常になります。 | Red Hat シリーズの Linux システムでは、/lib と /lib64 は通常、/usr/lib と /usr/lib64 を指すシンボリックリンクです。これらのリンクを変更するとシステムの問題を引き起こす可能性があるため、変更しないでください。 |
| サポート対象外 | SHENLONG インスタンスファミリー( や 。 | イメージが Alibaba Cloud ECS の神龍 (SHENLONG) インスタンスタイプをサポートしているかどうかをチェックします。 や などの最新の ECS インスタンスは、通常、神龍 (SHENLONG) インスタンスタイプです。イメージの OS とカーネルのバージョンが古すぎると、これらのインスタンスタイプで起動に失敗する可能性があります。詳細については、「インスタンスファミリーの概要」をご参照ください。 |
修正コマンドの詳細な説明
イメージを自動的に修正するコマンドは次のとおりです:
./main.sh --target=image --run <case> [--debug] [--dry-run] [-y]パラメーター | 必須 | 説明 |
| はい | 実行する修正項目。
|
| いいえ | 最初の修正試行で推奨されます。修正スクリプトを実行せずに表示します。 |
| いいえ | トラブルシューティングのために詳細なログ出力を有効にします。 |
| いいえ | すべての修正ステップを自動的に確認し、対話型プロンプトをスキップします。 |
関連ドキュメント
検証に合格した後、「Linux イメージファイルの取得」を行い、その後「カスタムイメージのインポート」で Alibaba Cloud プラットフォームにインポートできます。
よくある質問
nvme、selinux、または dhcp の修正を適用した後も問題が解決しないのはなぜですか?
これら 3 つの修正は、適用するために再起動が必要です。適用後、VM を再起動し、ツールを再実行して結果を検証してください。
単一のチェック項目を修正する方法
単一の項目、例えば SshConfig を修正するには:
「チェック項目と修正項目の概要」の表で、
SshConfigチェック項目に対応する修正項目sshdを見つけます。レビュー:
別の項目を修正するには、
sshdを対応する修正項目名に置き換えてください。./main.sh --target=image --run sshd --dry-run実行:
./main.sh --target=image --run sshd