3.17. cloud-init のトラブルシューティング

cloud-init の実行後にインスタンスをトラブルシューティングするには、設定ファイルとログファイルを調べます。問題を特定したら、インスタンスで cloud-init を再実行できます。

cloud-init コマンドを使用して、コマンドラインから cloud-init を実行できます。コマンド構文とオプションの引数およびサブコマンドの説明を表示するには、cloud-init --help コマンドを実行します。基本的な構文は以下のとおりです。

cloud-init [-h] [--version] [--file FILES] [--debug] [--force]
{init,modules,single,query,dhclient-hook,features,analyze,devel,collect-logs,clean,status}

以下の手順は、cloud-init の問題を特定するアイデアおよびプログラムを再実行するサンプルを提供しています。

手順

  1. cloud-init 設定ファイルを確認します。

    1. /etc/cloud/cloud.cfg 設定ファイルを検証します。cloud_init_modulescloud_config_modules、および cloud_final_modules に含まれるモジュールを確認します。
    2. /etc/cloud/cloud.cfg.d ディレクトリーで、ディレクティブ (*.cfg files) を確認します。
  2. 特定の問題の詳細については、/var/log/cloud-init.log ファイルおよび /var/log/cloud-init-output.log ファイルを確認してください。たとえば、root パーティションが自動的に拡張されないという問題があった場合は、growpart のログメッセージを確認してください。ファイルシステムが拡張されなかった場合は、ログメッセージで resizefs を確認します。resizefsgrep コマンドの例を以下に示します。

    # grep resizefs /var/log/cloud-init.log
    注記

    growpart は LVM をサポートしません。root パーティションが LVM をベースとしている場合は、root パーティションは初回起動時に自動的に拡張されません。

  3. cloud-init を再実行します。サンプルシナリオを以下に示します。root でコマンドを実行します。

    • init モジュールのみで cloud-init を再実行します。

      /usr/bin/cloud-init -d init
    • 設定内のすべてのモジュールで cloud-init を再実行します。

      /usr/bin/cloud-init -d modules
    • cloud-init キャッシュを削除し、起動後に cloud-init を強制的に実行します。

      rm -rf /var/lib/cloud/* && /usr/bin/cloud-init -d init
    • 以下のコマンドを実行してディレクトリーをクリーンアップし、クリーンなインスタンスをシミュレートします。

      rm -Rf /var/lib/cloud/instances/*
      rm -Rf /var/lib/cloud/instance
      rm -Rf /var/lib/cloud/data/*
      reboot
    • 以下のコマンドを実行して、cloud-init を再実行します。

      cloud-init init --local
      cloud-init init

関連情報