简短问题:您是否知道在无头 Ubuntu 16.04 服务器上构建无头 Ubuntu 16.04 VM(已安装并运行 ssh 服务器)的快速简便的方法?
详细版本:所以我非常喜欢ubuntu-vm-builder
14.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-builder
16.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