Show Table of Contents
11.2. ハードウェアイントロスペクションのトラブルシューティング
検出およびイントロスペクションのプロセスは最後まで実行する必要があります。ただし、Ironic の Discovery Daemon (
ironic-inspector) は、検出する ramdisk が応答しない場合にはデフォルトの 1 時間が経過するとタイムアウトします。検出 ramdisk のバグが原因とされる場合もありますが、通常は特に BIOS の起動設定などの環境の誤設定が原因で発生します。
以下には、環境設定が間違っている場合の一般的なシナリオと、診断/解決方法に関するアドバイスを示します。
ノードのイントロスペクション開始におけるエラー
通常、イントロスペクションプロセスは、Ironic サービス全体に対するコマンドとして機能する
baremetal introspection を使用します。ただし、ironic-inspector で直接イントロスペクションを実行している場合には、AVAILABLE の状態のノードの検出に失敗する可能性があります。このコマンドは、デプロイメント用であり、検出用ではないためです。検出前に、ノードの状態を MANAGEABLE に変更します。
$ ironic node-set-provision-state [NODE UUID] manage
検出が完了したら、状態を AVAILABLE に戻してからプロビジョニングを行います。
$ ironic node-set-provision-state [NODE UUID] provide
イントロスペクション済みのノードが PXE でブートできない問題
ノードがリブートする前に、
ironic-inspector はアンダークラウドのファイアウォールの ironic-inspector チェーンに MAC アドレスを追加します。これにより、ノードは PXE でブートします。設定が正しいことを確認するには、以下のコマンドを実行します。
$ sudo iptables -L
出力には、以下のチェーンテーブルで MAC アドレスが表示されるはずです。
Chain ironic-inspector (1 references) target prot opt source destination DROP all -- anywhere anywhere MAC xx:xx:xx:xx:xx:xx ACCEPT all -- anywhere anywhere
MAC アドレスが表示されない場合に最も多く見られる原因は、SQLite データベース内にある
ironic-inspector キャッシュの破損です。この問題を修正するには、以下のコマンドで SQLite ファイルを削除します。
$ sudo rm /var/lib/ironic-inspector/inspector.sqlite
次に以下のコマンドで、このファイルを再度作成します。
$ sudo ironic-inspector-dbsync --config-file /etc/ironic-inspector/inspector.conf upgrade $ sudo systemctl restart openstack-ironic-inspector
検出プロセスの停止
現在
ironic-inspector は直接検出プロセスを停止することができません。回避策として、プロセスがタイムアウトするまで待つことを推奨します。必要であれば、/etc/ironic-inspector/inspector.conf の timeout 設定を別のタイムアウト時間 (分) に変更します。
最悪の場合には以下のプロセスを使用して全ノードの検出を停止することができます。
手順11.3 検出プロセスの停止
- 各ノードの電源状態を OFF に変更します。
$ ironic node-set-power-state [NODE UUID] off
ironic-inspectorキャッシュを削除して、再起動します。$ rm /var/lib/ironic-inspector/inspector.sqlite $ sudo systemctl restart openstack-ironic-inspector
ironic-inspectorキャッシュを再同期します。$ sudo ironic-inspector-dbsync --config-file /etc/ironic-inspector/inspector.conf upgrade
イントロスペクション ramdisk へのアクセス
イントロスペクションの ramdisk は、動的なログイン要素を使用します。これは、イントロスペクションのデバッグ中にノードにアクセスするための一時パスワードまたは SSH キーのいずれかを提供できることを意味します。以下のプロセスを使用して、ramdisk アクセスを設定します。
- 以下のように
openssl passwd -1コマンドに一時パスワードを指定して MD5 ハッシュを生成します。$ openssl passwd -1 mytestpassword $1$enjRSyIw$/fYUpJwr6abFy/d.koRgQ/
/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のパラメーターにはいずれも引用符が必要です。- イントロスペクションを開始し、
arpコマンドまたは DHCP のログから IP アドレスを特定します。$ arp $ sudo journalctl -u openstack-ironic-inspector-dnsmasq
- 一時パスワードまたは SSH キーを使用して、root ユーザーとして SSH 接続します。
$ ssh root@192.0.2.105
イントロスペクションストレージのチェック
director は OpenStack Object Storage (swift) を使用して、イントロスペクションプロセス中に取得したハードウェアデータを保存します。このサービスが稼働していない場合には、イントロスペクションは失敗する場合があります。以下のコマンドを実行して、OpenStack Object Storage に関連したサービスをすべてチェックし、このサービスが稼働中であることを確認します。
$ sudo systemctl list-units openstack-swift*

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.