Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

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

イントロスペクションのプロセスは最後まで実行する必要があります。ただし、Ironic の Discovery Daemon (ironic-inspector) は、検出する ramdisk が応答しない場合にはデフォルトの 1 時間が経過するとタイムアウトします。discovery ramdisk のバグが原因とされる場合もありますが、通常は特に BIOS のブート設定などの環境の誤設定が原因で発生します。

以下には、環境設定が間違っている場合の一般的なシナリオと、診断/解決方法に関するアドバイスを示します。

ノードのイントロスペクション開始におけるエラー

通常、イントロスペクションプロセスは、openstack overcloud node introspect コマンドを使用します。ただし、ironic-inspector で直接イントロスペクションを実行している場合には、「AVAILABLE」の状態のノードの検出に失敗する可能性があります。検出前に、ノードのステータスを「MANAGEABLE」に変更します。

$ source ~/stackrc
(undercloud) $ openstack baremetal node manage [NODE UUID]

検出が完了したら、状態を「AVAILABLE」に戻してからプロビジョニングを行います。

(undercloud) $ openstack baremetal node provide [NODE UUID]

検出プロセスの停止

イントロスペクションのプロセスを停止します。

$ source ~/stackrc
(undercloud) $ openstack baremetal introspection abort [NODE UUID]

プロセスがタイムアウトするまで待つことも可能です。必要な場合は、/etc/ironic-inspector/inspector.conftimeout 設定を別の時間(秒単位)に変更します。

イントロスペクション ramdisk へのアクセス

introspection ramdisk は、動的なログイン要素を使用します。これは、イントロスペクションのデバッグ中にノードにアクセスするための一時パスワードまたは SSH キーのいずれかを提供できることを意味します。以下のプロセスを使用して、ramdisk アクセスを設定します。

  1. openssl passwd -1 コマンドに一時パスワードを指定して MD5 ハッシュを生成します。以下に例を示します。

    $ openssl passwd -1 mytestpassword
    $1$enjRSyIw$/fYUpJwr6abFy/d.koRgQ/
  2. /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 のパラメーターにはいずれも二重引用符が必要です。

  3. イントロスペクションを開始し、arp コマンドまたは DHCP のログから IP アドレスを特定します。

    $ arp
    $ sudo journalctl -u openstack-ironic-inspector-dnsmasq
  4. 一時パスワードまたは SSH キーを使用して、root ユーザーとして SSH 接続します。

    $ ssh root@192.168.24.105

イントロスペクションストレージのチェック

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

$ sudo systemctl list-units openstack-swift*