28.2. ハードウェアのイントロスペクションに関するトラブルシューティング

イントロスペクションのプロセスは最後まで実行する必要があります。ただし、イントロスペクション ramdisk が応答しない場合には、ironic-inspector がデフォルトの 1 時間が経過した後にタイムアウトします。イントロスペクション ramdisk にバグがあることを示している可能性もありますが、通常は環境の設定ミス (特に、BIOS のブート設定) によりこのタイムアウトが発生します。

典型的な環境の誤設定の問題を診断して解決するには、以下の手順を実施します。

手順

  1. stackrc ファイルを取得します。

    $ source ~/stackrc
  2. director は OpenStack Object Storage (swift) を使用して、イントロスペクションプロセス中に取得するハードウェアデータを保存します。このサービスが稼働していない場合には、イントロスペクションは失敗する場合があります。以下のコマンドを実行して、OpenStack Object Storage に関連したサービスをすべてチェックし、このサービスが稼働中であることを確認します。

    (undercloud) $ sudo systemctl list-units tripleo_swift*
  3. ノードを manageable の状態にします。イントロスペクションは、デプロイメント用を意味する available の状態にあるノードを検査しません。available の状態にあるノードを検査するには、イントロスペクションの前にノードのステータスを manageable の状態に変更します。

    (undercloud) $ openstack baremetal node manage [NODE UUID]
  4. イントロスペクション ramdisk への一時的なアクセスを設定します。一時パスワードまたは SSH 鍵のいずれかを指定して、イントロスペクションのデバッグ中にノードにアクセスすることができます。ramdisk へのアクセスを設定するには、以下の手順を実施します。

    1. 一時パスワードを指定して openssl passwd -1 コマンドを実行し、MD5 ハッシュを生成します。

      (undercloud) $ openssl passwd -1 mytestpassword
      $1$enjRSyIw$/fYUpJwr6abFy/d.koRgQ/
    2. /var/lib/ironic/httpboot/inspector.ipxe ファイルを編集し、kernel で始まる行を特定し、rootpwd パラメーターおよび MD5 ハッシュを追記します。

      kernel http://192.2.0.1:8088/agent.kernel ipa-inspection-callback-url=http://192.168.0.1:5050/v1/continue ipa-inspection-collectors=default,extra-hardware,logs systemd.journald.forward_to_console=yes BOOTIF=${mac} ipa-debug=1 ipa-inspection-benchmarks=cpu,mem,disk rootpwd="$1$enjRSyIw$/fYUpJwr6abFy/d.koRgQ/" selinux=0

      あるいは、sshkey パラメーターに公開 SSH 鍵 を追加します。

      注記

      rootpwd および sshkey パラメーターには、いずれも引用符を含めます。

  5. ノード上でイントロスペクションを実行します。

    (undercloud) $ openstack overcloud node introspect [NODE UUID] --provide

    イントロスペクションの完了後にノードの状態を available に変更するには、--provide オプションを使用します。

  6. dnsmasq ログでノードの IP アドレスを特定します。

    (undercloud) $ sudo tail -f /var/log/containers/ironic-inspector/dnsmasq.log
  7. エラーが発生する場合には、root ユーザーおよび一時アクセス用の詳細を使用してノードにアクセスします。

    $ ssh root@192.168.24.105

    イントロスペクション中にノードにアクセスして、診断コマンドを実行してイントロスペクションの失敗に関するトラブルシューティングを行います。

  8. イントロスペクションのプロセスを停止するには、以下のコマンドを実行します。

    (undercloud) $ openstack baremetal introspection abort [NODE UUID]

    プロセスがタイムアウトするまで待つことも可能です。

    注記

    イントロスペクションの最初の中止後、Red Hat OpenStack Platform director は実行を 3 回試みます。イントロスペクションを完全に中止するには、それぞれの試行時に openstack baremetal introspection abort コマンドを実行します。