カスタマーエッジへの接続
4 つの経路が利用可能であり、どれを使うかは好みではなく、ノードの状態、接続元の場所、そして到達したい対象によって決まります。
| 経路 | ノードが ONLINE である必要 | ネットワーク到達性が必要 | 制限 | 対象範囲 |
|---|---|---|---|---|
| Debug API | はい | はい | 新規サイトでは約 25〜30 分のウォームアップ | 34 個のコマンド |
| Site Console | いいえ | Azure Bastion 経由、踏み台ホストは不要 | Bastion はトンネリング対応の Standard SKU である必要があり、既定ではデプロイされない | F5 のノードトラブルシューティング UI |
| SSH | いいえ | VNet 内部から、内部アドレスに対してのみ | 鍵が初回起動時から存在している必要がある | オンボックス Site CLI の全機能 |
| シリアルコンソール | いいえ | いいえ | VM ごとに 1 セッション、貼り付けは 2,048 文字まで | オンボックス Site CLI の全機能 |
シリアルコンソールは最後の手段であり、ネットワーク経路がまったく機能していないノードでも使える唯一の経路です。
通常はまず Site Console を試すのがよいでしょう。配布する SSH 鍵も、踏み台ホストも、ノードのパブリック IP も、VM の置き換えも不要であり、要求される事項が最も少ない経路です。アクセスが認証情報の配布問題ではなく Azure RBAC の判断事項になるためです。コマンド操作面ではなく F5 独自のトラブルシューティング UI が提供されるため、特定のコマンドを実行したりスクリプト化したりする必要がある場合はこれを超えた手段を使ってください。唯一の前提条件は Azure Bastion であり、Standard SKU のホストは誰もトンネルを開かなくても課金されるため、このデプロイメントではオプトイン (enable_bastion、既定値 false) としています。
SSH は、デバッグ API では不十分な場合に使う手段です。アプライアンスは API が公開する 34 個よりも大幅に多くのコマンドを提供しているためです。ただし 2 つのコストがあります。鍵は cloud-init によって書き込まれるため 初回起動時 に存在している必要があり、稼働中のノードで有効化するにはすべての CE VM を置き換えることになります — 構成変更ではなくフリート全体の再構築です。さらに sshd はノードの内部アドレスでのみ応答するため、VNet 内部のホストが必要です。ノードを識別しているアドレスに対してプローブしても、常にクローズと報告されます。
この使い分けが好みの問題ではない理由
Section titled “この使い分けが好みの問題ではない理由”デバッグ API は F5 Distributed Cloud のコントロールプレーンによって提供され、登録時に vpm が確立したトンネルを通じてノードへ中継されます。登録がなければトンネルもなく、トンネルがなければ API には中継先が存在しません。
失敗の仕方は明白ではなく分かりにくいため、そもそも起動しなかったノードが API の問題のように見えてしまいます。
シリアルコンソールはまったく逆の経路をたどります — Azure プラットフォームを経由してノードのエミュレートされたシリアルポートへ接続します。ノードが登録済みかどうか、ネットワーク到達性があるかどうか、データプレーンが機能しているかどうかを問いません。この独立性こそが本質であり、CE VM でブート診断を有効のままにしておかなければならない理由でもあります。
経路ごとに使用する認証情報は異なり、そのいずれもコマンドラインに載せるべきものではありません。
- デバッグ API — F5 Distributed Cloud の API トークンを
XCSH_API_TOKENとして、テナント URL をXCSH_API_URLとして指定します。~/.config/xcsh/contexts/<tenant>.jsonにあるxcshのコンテキストファイルが両方を保持しており、環境変数が指定されていない場合にscripts/capture-sitecli.shがこれを読み取ります。このデプロイメントのテナントはf5-sales-demoです。別のテナント向けに発行されたトークンは、期限切れの認証情報のように見える素の401を返します。 - Site Console — 異なるレイヤーの 2 つの認証情報を使用します。対話型の Azure ログインで Bastion トンネルを開き、その背後のコンソールにはアプライアンス自身の
adminアカウントが HTTP Basic でサインインします。Azure 側については、VM、その NIC、および Bastion ホストに対する Reader 権限が必要であると Microsoft が示していますが、この要件は ここでは検証していません。すべてのテストはサブスクリプション所有者として実行されたためです。 - SSH — 初回起動時にデプロイメントが
/var/home/admin/.ssh/authorized_keysへ書き込んだ公開鍵に対応する秘密鍵と、内部アドレスへ到達するための VNet 内部のホストが必要です。接続はazureuserではなくadminで行います。 - シリアルコンソール — 対話型の Azure ログインを使用します。これ用のサービスプリンシパルはありません。F5 の社内 Entra テナントではサービスプリンシパルのプロビジョニングが許可されておらず、これがこの一連の処理を CI で実行していない理由でもあります。