在kvm的维护过程中,经常需要登陆VM的serial console,但是随着kvm host的增多,登陆到目标host,再登陆VM serial console就显得异常繁琐,能否在一台跳板机上使用virsh命令来远程登陆目标host中的VM serial console呢?答案是肯定的。

  • 找出目标VM id

    management-host:~ $ sudo virsh -c qemu+ssh://root@<remote-host>/system list (1)
    1 <remote-host>为目标host
  • 远程登陆目标VM serial consol

    management-host:~ $ sudo virsh -c qemu+ssh://root@<remote-host>/system console <vm-id-on-kvm-host>
  • 简化管理

    为了方便起见,可以创建一些alias,同时在多台host之间实现ssh public key登陆

    management-host:~ $ sudo vim ~/.config/libvirt/libvirt.conf
    --------------8<-------------
    uri_aliases = [
      "host-1=qemu+ssh://admin@host-1/system",
      "host-2=qemu+ssh://admin@host-2/system",
      "host-3=qemu+ssh://admin@host-3/system",
    ]
    -------------->8-------------

    然后`virsh -c host-3 list`