インタラクティブ シリアル コンソールを構成する

Bare Metal Solution は、Bare Metal Solution サーバーにアクセスするためのインタラクティブ シリアル コンソールを提供します。シリアル コンソールでは、直接コマンドを実行し、プロンプトに応答できます。シリアル コンソールを使用して、構成とトラブルシューティングを行うことができます。Bare Metal Solution サーバーは、最初のシリアルポート(ポート 1)をシリアル コンソールとして使用します。

インタラクティブ シリアル コンソールは、次のサーバーでのみサポートされています。

  • TS5443.45.00.002)以降のファームウェア バージョンを持つ汎用サーバー。
  • ファームウェア バージョンが 3.50.58 以降のメモリ最適化サーバー。

起動する前に、サーバーを最新のファームウェアにアップグレードしてください。始める前にをご覧ください。

インタラクティブ シリアル コンソール接続が 30 日以上経過している場合、この接続は強制的に切断される可能性があります。

このドキュメントでは、サーバーでインタラクティブ シリアル コンソール アクセスを有効または無効にする方法について説明します。

始める前に

  1. Bare Metal Solution API を有効にします。Google Cloud プロジェクトを設定して Bare Metal Solution API を使用するをご覧ください。

  2. 適切な Identity and Access Management(IAM)ロールをユーザーに付与します。このドキュメントのすべてのタスクを実行するには、次のいずれかのロールが必要です。

    • roles/baremetalsolution.admin
    • roles/baremetalsolution.editor
  3. 必要なバージョンのファームウェアがあることを確認します。

    • 汎用サーバーの場合、TS5443.45.00.002)以降。
    • メモリ最適化サーバーの場合、3.50.58 以降。

    以下の手順に沿って登録してください。

    1. Bare Metal Solution サーバーで、次のコマンドを実行します。

      sudo dmidecode -s bios-version
      

      成功すると、必要な BIOS のバージョン以降が出力に表示されます。たとえば、汎用サーバーの場合、出力には 43.45.00.002 以降の BIOS バージョンが表示されます。

      Version: BIOS_PUR043.45.00.002
      
    2. BIOS のバージョンが必要なファームウェアより古い場合は、サーバーのファームウェアをアップグレードします。アップグレードについてサポートが必要な場合は、カスタマーケアにお問い合わせください。

  4. Bare Metal Solution サーバーが 2022 年 6 月より前にプロビジョニングされた場合、インタラクティブ シリアル コンソールに必要な構成がカーネルブート パラメータに含まれていない可能性があります。逆に、2022 年 6 月以降にプロビジョニングされた場合は、必要な構成がすでに OS イメージに統合されている可能性があります。それでも、OS のパッチ適用や企業固有のポリシーの適用により、デフォルトのカーネルブート パラメータが変更される可能性があります。いずれの場合も、インタラクティブ シリアル コンソールに必要な OS 構成の可用性を確認することをおすすめします。

    インタラクティブ シリアル コンソールに必要な構成が OS に含まれていることを確認するには、次の手順に従います。

    1. /etc/default ディレクトリで GRand Unified Bootloader(GRUB)構成ファイルを見つけます。
    2. GRUB 構成ファイルに次の設定が含まれていることを確認します。

      GRUB_CMDLINE_LINUX="(append to the existing value) console=tty0 console=ttyS0,115200"
      GRUB_TERMINAL_OUTPUT="console serial"
      GRUB_TERMINAL="console serial"
      GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
      

      これらの設定がファイルに含まれている場合は、残りの手順をスキップしてください。GRUB 構成ファイルを使用してシリアル コンソールにアクセスできます。

    3. GRUB 構成ファイルにこれらの設定がない場合は、手動で追加してください。

    4. grub-mkconfig コマンドを実行して変更を処理します。詳細については、GRUB ドキュメントをご覧ください。

    5. サーバーを再起動します。

インタラクティブ シリアル コンソール アクセスを有効にする

インタラクティブ シリアル コンソールを有効にしてアクセスする手順は次のとおりです。

  1. インタラクティブ シリアル コンソールへのアクセスを有効にします
  2. SSH 認証鍵を生成します
  3. SSH 認証鍵を登録します
  4. サーバーに接続します

インタラクティブ シリアル コンソールへのアクセスを有効にする

インタラクティブ シリアル コンソールを使用する前に、サーバー上でインタラクティブ アクセスを有効にする必要があります。

gcloud

インタラクティブ シリアル コンソールへのアクセスを有効にするには、gcloud bms instances enable-serial-console コマンドを実行します。

gcloud bms instances enable-serial-console SERVER_NAME --project=PROJECT_ID --region=REGION

次のように置き換えます。

  • SERVER_NAME: サーバーの名前。
  • PROJECT_ID: プロジェクト ID。
  • REGION: サーバーのリージョン。

API

インタラクティブ シリアル コンソールへのアクセスを有効にするには、プロジェクト ID、リージョン、サーバー名を入力して、次の curl コマンドを実行します。

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME:enableInteractiveSerialConsole"

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • REGION: サーバーのリージョン。
  • SERVER_NAME: サーバーの名前。

SSH 認証鍵ペアを生成する

シリアル コンソールへのアクセスを認証するための SSH 認証鍵ペアを生成します。この操作は、プロジェクトごとに 1 回行う必要があります。

ジャンプホストの VM インスタンスまたはインターネットに接続している他のターミナルから ssh-keygen コマンドを実行して、新しい SSH 認証鍵ペアを作成します。

  ssh-keygen -b 4096 -f SSH_KEY_ID -N 'PASSPHRASE' -t rsa
  

次のように置き換えます。

  • SSH_KEY_ID: 公開鍵と秘密鍵の生成に使用される SSH 認証鍵ファイルのルート名。
  • PASSPHRASE: シリアル コンソールからサーバーにアクセスする際に使用するパスフレーズ。

ssh-keygen コマンドは、秘密鍵を SSH_KEY_ID というファイルに保存し、公開鍵をホーム ディレクトリの SSH_KEY_ID.pub というファイルに保存します。

SSH 認証鍵を登録する

シリアル コンソールへのアクセスを認証するには、プロジェクトに SSH 認証鍵を登録します。この操作は、鍵ペアごとに 1 回だけ行う必要があります。

gcloud

SSH 認証鍵を登録するには、gcloud bms ssh-keys add コマンドを実行します。

gcloud bms ssh-keys add SSH_KEY_ID --project=PROJECT_ID --key-file=SSH_KEY_ID.pub

次のように置き換えます。

  • SSH_KEY_ID: 公開鍵と秘密鍵の生成に使用される SSH 認証鍵ファイルのルート名。
  • PROJECT_ID: プロジェクト ID。
  • REGION: サーバーのリージョン。
  • SERVER_NAME: サーバーの名前。

API

SSH 認証鍵を登録するには、プロジェクト ID、SSH 認証鍵 ID、公開鍵ファイル名を入力し、次の curl コマンドを実行します。

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys?ssh_key_id=SSH_KEY_ID" \
--data "{\"public_key\": \"$(cat SSH_KEY_ID.pub)\"}"

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • SSH_KEY_ID: 公開鍵と秘密鍵の生成に使用される SSH 認証鍵ファイルのルート名。

プロジェクトの SSH 認証鍵を管理するには、SSH 認証鍵を管理するをご覧ください。

サーバーに接続する

SSH を使用してインタラクティブ シリアル コンソールにアクセスします。次のコマンドを実行します。

  ssh -i SSH_KEY_ID -p 9600 PROJECT_ID.REGION.SERVER_NAME.USERNAME.bms=true@ssh-serialport.googleapis.com
  

次のように置き換えます。

  • SSH_KEY_ID: 公開鍵と秘密鍵の生成に使用される SSH 認証鍵ファイルのルート名。
  • PROJECT_ID: プロジェクト ID。
  • REGION: サーバーのリージョン。
  • SERVER_NAME: サーバーの名前。
  • USERNAME: シリアル コンソールから Bare Metal Solution サーバーへのアクセスに使用するユーザー名。

プロンプトが表示されたら、前の手順で構成した SSH 認証鍵のパスフレーズを入力します。必要に応じて、Enter または Return キーを押して、インタラクティブ シリアル コンソールへのアクセス権を取得します。

インタラクティブ シリアル コンソールとの接続を解除する

シリアル コンソールとの接続を解除する手順は次のとおりです。

  1. ENTER または RETURN キーを押します。
  2. ~.」(チルダとピリオド)を入力します。

Bare Metal Solution 上の SAP HANA の場合は、CTRL + ] q を使用してインタラクティブ シリアル コンソールから切断します。

SSH 認証鍵を管理する

SSH 認証鍵はプロジェクトごとに保存されます。SSH 認証鍵は次の方法で管理できます。

SSH 認証鍵を一覧表示する

プロジェクトに登録されている公開 SSH 認証鍵を一覧表示できます。

gcloud

公開 SSH 認証鍵を一覧表示するには、gcloud bms ssh-keys list コマンドを実行します。

gcloud bms ssh-keys list --project=PROJECT_ID

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。

API

公開 SSH 認証鍵を一覧表示するには、プロジェクト ID を入力し、次の curl コマンドを実行します。

curl -v \
-X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys"

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。

SSH 認証鍵を削除する

プロジェクトで承認された鍵のリストから SSH 認証鍵を削除できます。

gcloud

公開 SSH 認証鍵を削除するには、gcloud bms ssh-keys remove コマンドを実行します。

gcloud bms ssh-keys remove SSH_KEY_ID --project=PROJECT_ID

次のように置き換えます。

  • SSH_KEY_ID: 公開鍵と秘密鍵の生成に使用される SSH 認証鍵ファイルのルート名。
  • PROJECT_ID: プロジェクト ID。

API

公開 SSH 認証鍵を削除するには、プロジェクト ID と SSH 認証鍵 ID を入力し、次の curl コマンドを実行します。

curl -v \
-X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/global/sshKeys/SSH_KEY_ID"

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • SSH_KEY_ID: 公開鍵と秘密鍵の生成に使用される SSH 認証鍵ファイルのルート名。

インタラクティブ シリアル コンソール アクセスを無効にする

サーバーでインタラクティブ シリアル コンソール アクセスを無効にするには、以下の操作を行います。

gcloud

インタラクティブ シリアル コンソールを無効にするには、gcloud bms instances disable-serial-console コマンドを実行します。

gcloud bms instances disable-serial-console SERVER_NAME --project=PROJECT_ID --region=REGION

次のように置き換えます。

  • SERVER_NAME: サーバーの名前。
  • PROJECT_ID: プロジェクト ID。
  • REGION: サーバーのリージョン。

API

インタラクティブ シリアル コンソールを無効にするには、プロジェクト ID、リージョン、サーバー名を入力して、次の curl コマンドを実行します。

curl -v \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Content-Type: application/json" \
"https://baremetalsolution.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/SERVER_NAME:disableInteractiveSerialConsole"

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • REGION: サーバーのリージョン。
  • SERVER_NAME: サーバーの名前。