6.5. 设置对远程虚拟化主机的更容易访问
当使用 libvirt 工具在远程主机系统中管理虚拟机时,您应该使用 -c qemu+ssh://root@hostname/system
语法。例如,要在 192.0.2.1
主机上以 root 用户身份使用 virsh list
命令:
virsh -c qemu+ssh://root@192.0.2.1/system list
# virsh -c qemu+ssh://root@192.0.2.1/system list
root@192.0.2.1's password:
Id Name State
---------------------------------
1 remote-guest running
但是,您可以通过修改 SSH 和 libvirt 配置来删除完整指定连接详情的需要。例如:
virsh -c remote-host list
# virsh -c remote-host list
root@192.0.2.1's password:
Id Name State
---------------------------------
1 remote-guest running
要进行改进,请按照以下步骤操作。
流程
使用以下详细信息编辑
~/.ssh/config
文件,其中 host-alias 是与特定远程主机关联的短名称,以及 root@192.0.2.1 的别名,hosturl 是主机的 URL 地址:vi ~/.ssh/config
# vi ~/.ssh/config Host example-host-alias User root Hostname 192.0.2.1
Copy to Clipboard Copied! 使用以下详情编辑
/etc/libvirt/libvirt.conf
文件,example-qemu-host-alias 是一个主机别名,QEMU 和 libvirt 工具将用来为qemu+ssh://192.0.2.1/system
与预期主机 example-host-alias 进行关联:vi /etc/libvirt/libvirt.conf
# vi /etc/libvirt/libvirt.conf uri_aliases = [ "example-qemu-host-alias=qemu+ssh://example-host-alias/system", ]
Copy to Clipboard Copied!
验证
确认通过在本地系统上使用基于 libvirt 的工具,并添加
-c qemu-host-alias
参数,您可以来管理远程虚拟机。这会在远程主机中使用 SSH 自动执行命令。例如,验证以下 192.0.2.1 远程主机上列出的虚拟机,在前面的步骤中到其的连接被设置为 example-qemu-host-alias :
virsh -c example-qemu-host-alias list
# virsh -c example-qemu-host-alias list root@192.0.2.1's password: Id Name State ---------------------------------------- 1 example-remote-guest running
Copy to Clipboard Copied! 注意除了
virsh
之外,-c
(或--connect
)选项以及上述远程主机访问配置也可以由以下工具使用:
后续步骤
如果要在单一远程主机中只使用 libvirt 工具,您也可以为基于 libvirt 的实用程序设置特定的连接作为默认目标。
但是,如果您还想管理本地主机或不同远程主机上的虚拟机,则无法执行此操作。
您可以编辑
/etc/libvirt/libvirt.conf
文件,并将uri_default
参数的值设置为 example-qemu-host-alias 来作为默认 libvirt 目标。These can be used in cases when no URI is supplied by the application (@uri_default also prevents probing of the hypervisor driver).
# These can be used in cases when no URI is supplied by the application # (@uri_default also prevents probing of the hypervisor driver). # uri_default = "example-qemu-host-alias"
Copy to Clipboard Copied! 因此,所有基于 libvirt 的命令都会在指定的远程主机中自动执行。
virsh list
$ virsh list root@192.0.2.1's password: Id Name State --------------------------------- 1 example-remote-guest running
Copy to Clipboard Copied!
-
可以使用
-c
(或--connect
)选项来运行virt-install
,
和远程主机上的 virsh
命令。