VNC またはシリアル・コンソールを使用した仮想サーバー・インスタンスへのアクセス

IBM Cloud UI、API 要求、または IBM Cloud コマンド・ライン・インターフェース (CLI) を使用して VNC またはシリアル・コンソールに接続することにより、IBM Cloud 仮想サーバー・インスタンスにアクセスできます。 コンソール・サービスは、セキュア・シェルを使用せずにインスタンスと対話するための迅速かつ簡単な方法です。

z/OS の仮想サーバーおよびTDX機密コンピューティングのみを使用する仮想サーバーインスタンスについて: z/OS またはTDX機密コンピューティングの仮想サーバーインスタンスをVNCコンソールに接続することはサポートされていません。

これは、特にカスタム・イメージを使用する場合に、ブート障害またはカーネル・クラッシュが発生した際に適用されます。 このような状態が発生した場合は、コンソール・サービスを使用して問題を調べることができます。

VNC コンソールはグラフィカル・ユーザー・インターフェースを備えており、マウスとキーボードの両方の入力を受け入れます。 シリアル・コンソールは、キーボード入力を受け入れるテキスト・ベースのコンソールを備えています。

コンソールを使用して、GNU GRand Unified Bootloader (GRUB) など、OS のロードおよびブートのプロシージャーにアクセスできます。

コンソールは、サポートされるブラウザーを使用して開くことができます。

開始前に

  1. コンソールに接続するには、 IBM Cloud® Identity and Access Management (IAM)において、仮想サーバーインスタンスに対して「 Operator 」(またはそれ以上の権限)および「 Console Administrator 」のロールが割り当てられている必要があります。

Console Administrator の役割は自動的には適用されません。 アカウントの管理者である場合も、この機能を使用するためには、Console Administratorの役割を自分自身に割り当てる必要があります。

必要なロールが割り当てられているかどうかを確認するには、 IBM Cloud コンソールの「 [IAMユーザー](/iam/users){: external}」 ページに移動し、「 **ユーザー** 」の下にある自分のアカウントを選択してから、 **「アクセスポリシー」** を選択してください。 対象の仮想サーバーインスタンス**のリソース属性**に、 `Operator` (またはそれ以上の)ロールと `VirtualServerConsoleAdmin` ロールが割り当てられているアクセスポリシーが表示されていることを確認してください。 表示されていない場合は、アカウントの管理者に連絡し、以下の手順で役割を割り当ててもらう必要があります。

1. IBM Cloud コンソールの「 [IAMユーザー](/iam/users){: external} 」ページに移動し、対象のユーザーを選択します。
1. **アクセス**タブをクリックし、**アクセスポリシー**までスクロールします。
1. **「アクセス権限の割り当て」** をクリックします。
1. **ポリシーの作成**セクションまでスクロールします。
1. **サービス**セクションで、_VPCインフラストラクチャサービス_を選択します。 そして、**「次へ (Next)」** をクリックします。
1. **リソース**セクションで、_すべてのリソース_を選択します。
1. **Roles and actions(役割とアクション**)で、以下のService access(サービスアクセス)を選択する:
   - コンソール管理者
1. 次に、以下のプラットフォームアクセスの中から1つを選択してください:
   - オペレーター
   - エディター
   - 管理者
1. **次へ** をクリックします。
1. オプションで「条件」を追加する。
1. **「レビュー」**をクリックします。
1. **追加** をクリックします。
1. **「アクセス・サマリー」**サイド・ペインを確認し、**「割り当て」**をクリックします。

IAM の役割について詳しくは、[IAM の概要](/docs/vpc?topic=vpc-iam-getting-started)を参照してください。
{: tip}
  1. 通常、IBM Cloud によって提供されるイメージにはパスワードがありません。 コンソールを使用してインスタンスに正常にアクセスするには、Linux イメージのパスワードを作成するか、前もって Windows イメージのパスワードを取得する必要がある場合があります。

シリアル・コンソールの場合、-a root フラグを使用して、パスワードなしで自動的にログインするように getty を構成できます。

カスタム Linux イメージでシリアル・コンソール・サービスを有効にするには、カーネル・コマンド・ラインに引数 console=ttyS0 が存在することを確認します。 詳細については、『 Linux カスタムイメージの作成 』の「 ステップ 1 - qcow2 または VHD 形式の単一イメージファイルから開始する 」を参照してください。

IBM Cloud UI を使用したコンソールへの接続

IBM Cloud UI を使用してコンソールに接続するには、以下の手順を実行します。

  1. IBM Cloud コンソールで、ナビゲーションメニュー アイコンメニューアイコン インフラストラクチャ VPC アイコン コンピュート > 仮想サーバーインスタンス に進みます。
  2. **「VPC の仮想サーバー・インスタンス (Virtual server instances for VPC)」リストでアクセスする必要があるインスタンスのオーバーフロー・ボタンをクリックし、「VNC コンソールを開く」または「シリアル・コンソールを開く」をクリックします。 あるいは、インスタンスの詳細ページで右上にある「アクション」をクリックし、「VNC コンソールを開く」または「シリアル・コンソールを開く」**をクリックします。
  3. (シリアル・コンソールの場合のみ) シリアル・コンソールが使用されている場合は、セッションを強制的に開くかどうかを確認するプロンプトが出されます。 このアクションにより、他のユーザーのセッションが切断されます。
  4. 資格情報を入力し、プロンプトに従ってインスタンスにログインします。

インスタンスを停止または再始動するには、コンソールのウィンドウの右上にある**「インスタンスのシャットダウン」または「インスタンスのリブート」**をクリックします。

API を使用したコンソールへの接続

API 要求を使用して VNC またはシリアル・コンソールに接続する前に、IAM トークンを取得し、エンドポイントを変数として保管し、VPC API サービスに対するアクセス権限があることを確認する必要があります。 詳しくは、API の前提条件を参照してください。

API を使用した VNC コンソールへの接続

  1. インスタンスのコンソール・アクセス・トークンを作成します。 ペイロードに "console_type":"VNC" を指定します。

      curl -X POST \
      "$vpc_api_endpoint/v1/instances/$instance_id/console_access_token?version=2021-01-26&generation=2" \
      -H "Authorization: Bearer $iam_token" \
      -d '{
            "console_type": "vnc"
      	  }'
    

    アクセス・トークンは 3 分後に無効になります。

  2. 応答に「href」の値を保存します。

  3. ブラウザで「 noVNC 」ポータルを開きます。

  4. **「設定」をクリックして、「拡張」>「WebSocket」**を展開します。

  5. **「暗号化」をオンにし、ステップ 2 で保存した URL の API エンドポイントの部分を「ホスト:」に貼り付けます。「wss://」は含めないでください。「ポート」を「443」に設定し、ステップ 2 で保存した URL のパスの部分を「パス」**に貼り付けます。

    • API エンドポイントの例: us-south.iaas.cloud.ibm.com
    • パスの例: v1/instances/<instance_id>/console?access_token=<access_token>&version=2020-12-06&generation=2
  6. 「接続」 をクリックします。

  7. インスタンスにログインします。

API を使用したシリアル・コンソールへの接続

  1. インスタンスのコンソール・アクセス・トークンを作成し、ペイロードに "console_type": "serial""force": true を指定します。

      curl -X POST \
      "$vpc_api_endpoint/v1/instances/$instance_id/console_access_token?version=2020-01-26&generation=2" \
      -H "Authorization: $token" \
      -d '{
         "console_type":"serial",
         "force": true
      }'
    

    "force"true に指定すると、コンソールが他のユーザーによって使用されている場合でも、シリアル・コンソールに接続できます。 デフォルト値は false です。これは、コンソールが使用されている場合は接続を確立できないことを意味します。

  2. 応答に「href」の値を保存します。

  3. URL を使用してシリアル・コンソール・プログラムを開始します。

    websocat を使用する場合は、コマンドに --binary フラグを指定します。 以下に例を示します。 websocat --binary "wss://us-south.iaas.cloud.ibm.com/v1/instances/<instance_id>/console?access_token=<access_token>&version=2020-12-06&generation=2"

  4. 資格情報を入力し、プロンプトに従ってインスタンスにログインします。

CLI を使用したコンソールへの接続

CLI の前提条件に従って CLI 環境をセットアップしたことを確認します。

  1. 以下のコマンドを実行して、コンソールに接続します。

    ibmcloud is instance-console $instance_id
    

    このコマンドは、デフォルトでシリアル・コンソールを開きます。 VNC コンソールを開くには、コマンドに [--vnc] フラグを追加して、コンソールの URL を取得します。

  2. 使用するコンソールに応じて、以下のいずれかの手順を実行します。

    • VNC コンソールの場合は、API を使用した VNC コンソールへの接続ステップ 2 からステップ 7 に従ってください。
    • シリアル・コンソールの場合は、資格情報を入力し、プロンプトに従ってインスタンスにログインします。

コンソールからの切断

コンソールでの操作が終了したら、端末またはブラウザーを閉じて、コンソールから切断することができます。

コンソール・サービスに関する注意事項

  1. コンソール・セッションは、アイドル時間が 10 分経過すると有効期限が切れます。 アクティビティーに関係なく、60 分後にクローズします。

    一部のオペレーティング・システム (Ubuntu 18.04 など) では、コンソール上に点滅するカーソルがあります。 VNC コンソールを使用して、このようなオペレーティング・システムを使用するインスタンスにアクセスすると、点滅するカーソルによって、コンソール・セッションはアイドル状態が 10 分間続いた後もアクティブのままになります。 ただし、コンソール・セッションは、アクティビティーに関係なく 60 分後にクローズされます。

  2. インスタンスの電源がオフになると、コンソールは切断されます。 インスタンスが再始動されるまで、接続を再確立することはできません。

  3. 再始動、リセット、またはインスタンスのスケジュール変更を行わないその他の操作では、コンソール接続が維持されます。

  4. インスタンスごとのアクティブ VNC コンソールの数は 2 つに制限されています。 インスタンスごとのアクティブなシリアル・コンソールの数は 1 つに制限されています。

  5. シリアル・コンソールを使用した仮想サーバーLinuxインスタンスのトラブルシューティングについては、シリアル・コンソールから仮想サーバーLinuxインスタンスのトラブルシューティングを行うには、どのようにLinux SysRqキーを使用すればよいですか? を参照してください。