2.2.3. 打开串行控制台到虚拟机

您可以从命令行访问虚拟机的串行控制台,而不是从管理门户或虚拟机门户打开控制台。使用 SSH 和密钥对通过 VirtIO 通道模拟串行控制台。Manager 充当连接的代理,提供有关虚拟机放置的信息,并存储身份验证密钥。您可以从管理门户或虚拟机门户为每个用户添加公钥。您只能访问具有适当权限的那些虚拟机的串行控制台。

重要

要访问虚拟机的串行控制台,用户必须具有该虚拟机的 UserVmManagerSuperUserUserInstanceManager 权限。必须为每个用户明确定义这些权限。将这些权限分配给Everyone(每个人)是不够的。

串行控制台通过 Manager 上的 TCP 端口 2222 访问。这个端口会在新安装中的 engine-setup 期间打开。要更改端口,请参阅 ovirt-vmconsole/README

使用串行控制台需要配置防火墙规则。如需更多信息,请参阅:

串行控制台依赖于 Manager 上的 ovirt-vmconsole 软件包和 ovirt-vmconsole-proxy,以及虚拟主机上的 ovirt-vmconsole 软件包和 ovirt-vmconsole-host 软件包。这些软件包默认安装在新安装中。若要在现有安装上安装软件包,请重新安装主机。请参阅管理指南中重新安装主机

启用虚拟机的串行控制台

  1. 在您要访问的串行控制台的虚拟机上,向 /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 中已存在这些行,请更新它们。不要重复它们。

  2. 重新构建 /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

  3. 在您要从其访问虚拟机串行控制台的客户端计算机上,生成 SSH 密钥对。Manager 支持标准 SSH 密钥类型,例如 RSA 密钥:

    # ssh-keygen -t rsa -b 2048 -C "user@domain" -f .ssh/serialconsolekey

    此命令将生成公钥和私钥。

  4. 在管理门户或虚拟机门户中,单击标题栏中已签名的用户名称,然后单击 Options 以打开 Edit Options 窗口。
  5. 用户的公钥文本 字段中,粘贴将用于访问串行控制台的客户端计算机的公钥。
  6. 单击 ComputeVirtual Machines 并选择虚拟机。
  7. Edit
  8. 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 超时。在超时期限到期之前,您将无法重新连接到虚拟机的串行控制台。