18.9. Ignition のトラブルシューティング
Ignition の問題を診断するために、ログの調査、サービスのステータスの確認、設定の配信状況の確認を行うことができます。
| 問題 | 原因 | 解決方法 |
|---|---|---|
| Ignition が実行されない |
|
|
| 設定が見つからない | プラットフォーム ID が間違っているか、設定ファイルが見つかりません。 |
|
| SSH 鍵が受け付けられない |
|
|
| ファイルが永続化されない | 読み取り専用ファイルシステム上の場所に書き込みを行っています。 |
ファイルを |
| ブートのたびに Ignition が実行される | 初回ブートマーカーが削除されていません。 |
|
- Ignition ログの表示
journalctlユーティリティーを使用すると、Ignition の実行ログを確認できます。すべての Ignition メッセージを表示するには、以下を実行します。
# journalctl -t ignition --no-pagerignition-disks.service、ignition-files.service、ignition-fetch.serviceなどの特定の Ignition サービスのログを表示するには、以下を実行します。# journalctl -u ignition-disks.service現在のブートの
initramfsIgnition ログを表示するには、以下を実行します。# journalctl -b 0 | grep -i ignition
- サービスステータスの確認
systemctlユーティリティーを使用すると、Ignition 関連サービスのステータスを確認できます。初回ブート完了サービスのステータスを確認するには、以下を実行します。
# systemctl status ignition-firstboot-complete.serviceSSH 鍵通知サービスのステータスを確認するには、以下を実行します。
# systemctl status coreos-check-ssh-keys.serviceIgnition 関連のサービスをすべてリスト表示するには、以下を実行します。
# systemctl list-units 'ignition' 'coreos'
- 設定の配信状況の確認
デプロイ環境に応じて、Ignition が設定を正常に受信したかどうかを確認できます。
- ベアメタル環境で Ignition 設定を調べる
ベアメタルデプロイメントでは、Ignition の設定ファイルはブートパーティションに直接保存されます。キャッシュまたはコピーされた設定を検査するには、以下を実行します。
ブートパーティションをマウントします。
# mount /dev/disk/by-label/boot /mnt/mnt/ignition/ディレクトリーの内容をリスト表示します。# ls -la /mnt/ignition/Ignition 設定ファイルの内容を表示およびフォーマットします。
# cat /mnt/ignition/config.ign | jq .ブートパーティションをアンマウントします。
# umount /mnt- QEMU 環境での Ignition 設定の取得を確認する
initramfs を使用して Ignition の設定を QEMU インスタンスに渡すと、Ignition はダウンロードしたペイロードを /run ディレクトリーにキャッシュします。
Ignition が設定ファイルをキャッシュしているかどうかを確認します。
# ls -la /run/ignition.jsonキャッシュされた設定ファイルの内容を表示します。
# cat /run/ignition.json | jq .- initramfs 内でデバッグする
ブート中に Ignition が失敗した場合、システムが緊急シェルに移行する可能性があります。以下のコマンドを使用して問題を診断できます。
Ignition fetch サービスのステータスを確認するには、以下を実行します。
# systemctl status ignition-fetch.serviceIgnition fetch サービスのエラー出力を表示するには、以下を実行します。
# journalctl -u ignition-fetch.service設定ソースにアクセスできるかどうかを確認するには (QEMU
fw_cfgの例)、以下を実行します。# cat /sys/firmware/qemu_fw_cfg/by_name/opt/com.coreos/config/rawIgnition をデバッグモードで手動で実行するには、以下を実行します。
# /usr/bin/ignition --platform=qemu --stage=fetch --log-to-stdout
- SSH 鍵の問題を解決する
- デプロイしたシステムで SSH 鍵が機能しない場合は、以下のチェックを行ってください。
Ignition が SSH 鍵を書き込んだ場所を確認します。
# ls -la /home/core/.ssh/# ls -la /home/core/.ssh/authorized_keys.d/sshdサービスの設定が正しく行われていることを確認します。# grep -r AuthorizedKeysFile /etc/ssh/sshdサービスのログで認可イベントを確認します。# journalctl -u sshd.service | grep -i authorized- 初回ブートマーカーの問題を解決する
- 次回以降のブート時にも Ignition が実行される場合は、以下のチェックを行います。
初回ブートマーカーが存在するかどうかを確認します。
# ls -la /boot/ignition.firstboot初回ブート完了サービスのステータスを確認します。
# systemctl status ignition-firstboot-complete.service# journalctl -u ignition-firstboot-complete.service必要に応じて、初回ブートマーカーを手動で削除します。
# mount -o remount,rw /boot# rm -f /boot/ignition.firstboot# rm -rf /boot/ignition- 設定検証エラーを解決する
デプロイ前に設定ファイルを検証することで、構文エラーを検出できます。
Ignition JSON ファイルを検証するには、以下を実行します。
# ignition-validate config.ignButane YAML ファイルを検証するには、以下を実行します。
$ butane --strict config.bu > /dev/nullIgnition の設定を整形して確認するには、以下を実行します。
# cat config.ign | jq .
- 緊急コンソールにアクセスする
- SSH を使用してシステムに接続できない場合は、以下の復旧手順を実行します。
- システムコンソール (シリアルまたは VGA) に接続します。
- ブート中にコンソール出力で Ignition のエラーメッセージを確認します。
システムが正常に起動した場合は、
/etc/issue.d/ディレクトリーでステータスメッセージを確認します。$ cat /etc/issue.d/30_ssh_authorized_keys.issue- 診断情報を収集する
トラブルシューティングのためにシステムの詳細情報を収集するには、以下の診断コマンドを実行します。
システム情報を表示するには、以下を実行します。
# hostnamectl# rpm -qa | grep ignitionブートパラメーターを表示するには、以下を実行します。
# cat /proc/cmdline現在のブートの Ignition ログをファイルに保存するには、以下を実行します。
# journalctl -b 0 -t ignition > ignition.log失敗したサービスのリストをファイルに保存するには、以下を実行します。
# systemctl list-units --failed > failed-units.log