2.2.3. 打开串行控制台到虚拟机
您可以从命令行访问虚拟机的串行控制台,而不是从管理门户或虚拟机门户打开控制台。使用 SSH 和密钥对通过 VirtIO 通道模拟串行控制台。Manager 充当连接的代理,提供有关虚拟机放置的信息,并存储身份验证密钥。您可以从管理门户或虚拟机门户为每个用户添加公钥。您只能访问具有适当权限的那些虚拟机的串行控制台。
要访问虚拟机的串行控制台,用户必须具有该虚拟机的 UserVmManager、SuperUser 或 UserInstanceManager 权限。必须为每个用户明确定义这些权限。将这些权限分配给Everyone(每个人)是不够的。
串行控制台通过 Manager 上的 TCP 端口 2222 访问。这个端口会在新安装中的 engine-setup
期间打开。要更改端口,请参阅 ovirt-vmconsole/README。
使用串行控制台需要配置防火墙规则。如需更多信息,请参阅:
串行控制台依赖于 Manager 上的 ovirt-vmconsole
软件包和 ovirt-vmconsole-proxy
,以及虚拟主机上的 ovirt-vmconsole
软件包和 ovirt-vmconsole-host
软件包。这些软件包默认安装在新安装中。若要在现有安装上安装软件包,请重新安装主机。请参阅管理指南中的重新安装主机。
启用虚拟机的串行控制台
在您要访问的串行控制台的虚拟机上,向 /etc/default/grub 中添加以下行:
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8" GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
注意GRUB_CMDLINE_LINUX_DEFAULT
将此配置仅应用于默认菜单条目。使用GRUB_CMDLINE_LINUX
将配置应用到所有菜单条目。如果 /etc/default/grub 中已存在这些行,请更新它们。不要重复它们。
重新构建 /boot/grub2/grub.cfg :
基于 BIOS 的机器:
# grub2-mkconfig -o /boot/grub2/grub.cfg
基于 UEFI 的机器:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
详情请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的通过串行控制台使用 GRUB 2。
在您要从其访问虚拟机串行控制台的客户端计算机上,生成 SSH 密钥对。Manager 支持标准 SSH 密钥类型,例如 RSA 密钥:
# ssh-keygen -t rsa -b 2048 -C "user@domain" -f .ssh/serialconsolekey
此命令将生成公钥和私钥。
- 在管理门户或虚拟机门户中,单击标题栏中已签名的用户名称,然后单击 Options 以打开 Edit Options 窗口。
- 在 用户的公钥文本 字段中,粘贴将用于访问串行控制台的客户端计算机的公钥。
- 单击 Compute → Virtual Machines 并选择虚拟机。
- 点 Edit。
- 在 Edit Virtual Machine 窗口的 Console 选项卡中,选中 Enable VirtIO 串行控制台 复选框。
连接到虚拟机的串行控制台
在客户端机器上连接到虚拟机的串行控制台:
如果单个虚拟机可用,这个命令会将用户连接到该虚拟机:
# ssh -t -p 2222 ovirt-vmconsole@Manager_FQDN -i .ssh/serialconsolekey Red Hat Enterprise Linux Server release 6.7 (Santiago) Kernel 2.6.32-573.3.1.el6.x86_64 on an x86_64 USER login:
如果有多个虚拟机可用,这个命令会列出可用的虚拟机及其 ID:
# ssh -t -p 2222 ovirt-vmconsole@Manager_FQDN -i .ssh/serialconsolekey list 1. vm1 [vmid1] 2. vm2 [vmid2] 3. vm3 [vmid3] > 2 Red Hat Enterprise Linux Server release 6.7 (Santiago) Kernel 2.6.32-573.3.1.el6.x86_64 on an x86_64 USER login:
输入您要连接的机器数量,然后按
Enter
。或者,使用其唯一标识符或其名称直接连接到虚拟机:
# ssh -t -p 2222 ovirt-vmconsole@Manager_FQDN connect --vm-id vmid1
# ssh -t -p 2222 ovirt-vmconsole@Manager_FQDN connect --vm-name vm1
断开与虚拟机的串行控制台的连接
按任意键加 ~ .
以关闭串行控制台会话。
如果串行控制台会话正常断开连接,则发生 TCP 超时。在超时期限到期之前,您将无法重新连接到虚拟机的串行控制台。