配置交互式串行控制台
裸金属解决方案提供交互式串行控制台,用于访问裸金属解决方案服务器。您可以直接在串行控制台中运行命令并响应提示。您可以使用串行控制台执行配置 和问题排查任务Bare Metal 解决方案服务器使用第一个串行端口(端口 1)作为串行控制台。
只有以下服务器支持交互式串行控制台:
- 固件版本为
TS54
(43.45.00.002
) 或更高版本的通用服务器。 - 内存优化型服务器,固件版本为
3.50.58
或更高版本。
请务必先将服务器升级到最新固件,然后再开始。请参阅准备工作。
存在时间超过 30 天的交互式串行控制台连接 强制断开连接
本文档介绍了如何启用和停用交互式串行控制台 访问。
准备工作
启用 Bare Metal 解决方案 API。请参阅通过设置 Google Cloud 项目 使用 Bare Metal 解决方案 API。
向用户授予适当的 Identity and Access Management (IAM) 角色。 要执行本文档中的所有任务,您必须满足以下任一条件: 角色:
roles/baremetalsolution.admin
roles/baremetalsolution.editor
验证您是否拥有所需固件版本:
- 对于通用服务器,应使用
TS54
(43.45.00.002
) 或更高版本。 - 对于内存优化服务器,请使用
3.50.58
或更高版本。
请按照以下步骤操作:
在裸金属解决方案服务器上,运行以下命令:
sudo dmidecode -s bios-version
如果成功,输出会显示所需的 BIOS 版本或更高版本。对于 如果是通用服务器,则输出会显示
43.45.00.002
或更高版本:Version: BIOS_PUR043.45.00.002
如果 BIOS 版本低于所需的固件,请升级 。联系 用于升级的客户服务 。
- 对于通用服务器,应使用
如果您的裸金属解决方案服务器是在 2022 年 6 月之前预配的,则 内核启动参数可能缺少 交互式串行控制台。反之,如果它在 2022 年 6 月,所需的配置可能已集成到您的 操作系统映像。不过,操作系统补丁或企业专用政策强制执行可能会更改默认的 kernel 启动参数。无论如何,我们都建议您验证交互式串行控制台所需的操作系统配置是否可用。
为确保您的操作系统具有交互式串行控制台所需的配置,请按以下步骤操作:
- 在
/etc/default
目录中找到 GRand Unified Bootloader (GRUB) 配置文件。 验证 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 配置文件访问串行控制台。
如果 GRUB 配置文件没有这些设置,请添加这些设置 。
运行
grub-mkconfig
命令来处理更改。如需了解详情,请参阅 GRUB 文档。重新启动服务器。
- 在
启用交互式串行控制台访问权限
要启用和访问交互式串行控制台,请按以下步骤操作:
启用对交互式串行控制台的访问权限
您必须先在服务器上启用对交互式串行控制台的访问权限,然后才能使用该控制台。
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 密钥对,以验证您对串行控制台的访问。此操作只需要针对每个项目执行一次。
从跳转主机虚拟机实例或其他实例运行 ssh-keygen
命令
连接互联网的终端来创建新的 SSH 密钥对。
ssh-keygen -b 4096 -f SSH_KEY_ID -N 'PASSPHRASE' -t rsa
请替换以下内容:
- SSH_KEY_ID:用于生成 公钥和私钥
- PASSPHRASE:通过串行控制台访问服务器时使用的口令。
ssh-keygen
命令会将您的私钥保存到名为 SSH_KEY_ID 的文件中,并将您的公钥保存到您主目录中名为 SSH_KEY_ID.pub 的文件中。
注册 SSH 密钥
要对串行控制台的访问权限进行身份验证,请在 项目。此操作只需要针对每个密钥对执行一次。
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:您用于通过串行控制台访问裸金属解决方案服务器的用户名。
出现提示时,输入您之前配置的 SSH 密钥密码。根据需要,按 Enter
或 Return
键即可访问交互式串行控制台。
与交互式串行控制台断开连接
如需断开与串行控制台的连接,请按以下步骤操作:
- 按
ENTER
或RETURN
键。 - 输入
~.
(即依次输入波浪号和英文句点)。
对于 SAP HANA on 裸金属解决方案,请使用 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 -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:服务器的名称。