Ubuntu Server 16.04 LTS 中的 KVM

Ubuntu Server 16.04 LTS 中的 KVM

简短问题:您是否知道在无头 Ubuntu 16.04 服务器上构建无头 Ubuntu 16.04 VM(已安装并运行 ssh 服务器)的快速简便的方法?

详细版本:所以我非常喜欢ubuntu-vm-builder14.04。昨天我确实设置了一个新的 16.04 VM 主机 PC,并注意到所述生成器只能创建直到 14.04 的虚拟机。(这个答案针对这个问题使用 ubuntu-vm-builder 创建虚拟机指出 Canonical 已放弃/弃用它(我还没有找到官方声明)。

Extracting templates from packages: 100%
2016-06-28 17:02:43,136 INFO : W: --force-yes is deprecated, use one of the options starting with --allow instead.)

因此我开始尝试使用 virt-builder,并遇到了这个问题,这似乎是 VM 主机系统的故障。

最后我尝试直接使用 virt-install,但我觉得第一次连接只能使用 vnc(而不是简单的 ssh 终端)。我跟着本指南并让虚拟机运行起来。但在设置 vnc 连接的 ssh 隧道时,我遇到了困难。我假设您必须在虚拟机主机上运行此代码:

$ sudo virsh dumpxml gitMachine | grep vnc
$ <graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>
$ ssh ubuntuDesktopUser@ubuntuDesktop -L 5900:127.0.0.1:5900

上述隧道已成功连接(系统要求我输入证书和密码)。但我无法按照指南中的说明使用 VNC 客户端从 Ubuntu 桌面连接到虚拟机。

是否有其他工具可以提供与ubuntu-vm-builder16.04 相同的结果?

答案1

好的。这就是我想出的:

sudo virt-install \
--name test \
--ram 4096 \
--disk path=/home/myuser/kvm/vm_images/test.img,size=20 \
--vcpus 2 \
--os-type linux \
--os-variant ubuntu16.04 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location http://debian.ethz.ch/ubuntu/ubuntu/dists/xenial/main/installer-amd64/ \
--extra-args 'hostname=test ip=10.10.10.120 dns=31.3.135.232 gateway=10.10.10.1 netmask=255.255.255.0 console=ttyS0,115200n8 serial' \
--debug

对于我发现的大多数示例,--location 参数的地址都是关闭的。我的地址如下:

Reachable as debian.ethz.ch, ubuntu.ethz.ch and ftp.ch.debian.org.
[ICO]   Name    Last modified   Size    Description
[PARENTDIR] Parent Directory        -    
[DIR]   20101020ubuntu448/  2016-04-16 23:53    -   Ubuntu APT repository
[DIR]   20101020ubuntu450/  2016-04-19 20:58    -   Ubuntu APT repository
[DIR]   20101020ubuntu451/  2016-04-20 17:53    -   Ubuntu APT repository
[DIR]   current/    2016-04-20 17:53    -    

执行此命令后,您将直接进入 gestOS 的控制台,安装程序正在运行。我不确定为什么它会在安装过程中要求下载镜像,因为指定了位置参数。

并非所有额外参数都对我有用。主机名和控制台都可以。

由于我已将主机上的 br0 配置为具有静态 IP,因此新创建的 VM 无法解析互联网中的主机。因此,在 guestOS 安装程序中的镜像选择过程中失败。我能够通过退出到安装程序的 shell 来解决这个问题:

nano /etc/resolv.conf
# changed content of the file to: hostname 8.8.8.8
# ping yahoo.com should work for example
exit

之后您将返回安装程序并继续。安装过程中不要忘记检查 OpenSSH 服务器包。之后,您可以使用 Putty 通过 DHCP 租约访问虚拟机。设置完成后,虚拟机将重新启动,并且 hostOS 内的串行控制台会话将无法正确重新连接。我也无法连接到

$ virsh console foo

这只导致

Connected to domain foo
Escape character is ^]

对我有帮助的链接: https://www.server-world.info/en/note?os=Ubuntu_16.04&p=kvm&f=2

相关内容