在没有 GUI 的 Ubuntu 服务器上创建无头 Ubuntu 虚拟机

Create headless Ubuntu VM on a Ubuntu server without GUI

我需要在我们的实验室服务器上创建一个 Ubuntu_64 虚拟机 (VM1),它也是一个 Ubuntu 机器 (U1),没有 GUI,用于托管我的 Web 服务器工具和目标就是将它设置为 public 供任何人使用而不影响我们的实验室服务器。我使用 VirtualBox 成功创建了 VM1,但现在我不知道如何通过 SSH 从 U1 连接到 VM1,或者如何从任何其他计算机连接到 VM1。事实上,我卡在了 "VM1 has been successfully started" 这一步。

我查看了几个说明,但其中大多数都有 GUI 版本的 VirtualBox 来配置 VM。

以下是我的主要问题:

1)关于VM1,如何获取IP地址?

2) 如何为 VM1 设置用户名和登录名,例如 ssh user@127.0.0.1,"user" 是什么?

下面是我创建 VM1 的代码:

 VBoxManage createvm --name VM1 --ostype Ubuntu_64 --register --basefolder /pwd/
 VBoxManage modifyvm VM1 --ioapic on
 VBoxManage modifyvm VM1 --memory 1024 --vram 128
 VBoxManage modifyvm VM1 --bridgeadapter1 vboxnet0
 VBoxManage modifyvm VM1 --nic1 bridged
 VBoxManage createhd --filename `pwd`/VM1/VM1_DISK.vdi --size 80000 --format VDI
 VBoxManage storagectl VM1 --name "SATA Controller" --add sata --controller IntelAhci
 VBoxManage storageattach VM1 --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium  `pwd`/VM1/VM1_DISK.vdi
 VBoxManage storagectl VM1 --name "IDE Controller" --add ide --controller PIIX4
 VBoxManage storageattach VM1 --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium `pwd`/ubuntu-16.04.6-server-amd64.iso
 VBoxManage modifyvm VM1 --boot1 dvd --boot2 disk --boot3 none --boot4 none
 VBoxManage modifyvm VM1 --vrde on
 VBoxManage modifyvm VM1 --vrdemulticon on --vrdeport 10001
 VBoxManage startvm VM1 --type headless

如有任何建议,我们将不胜感激!

很高兴您将其分解这么多并了解 VirtualBox 的工作原理。但是,您应该知道存在解决这些问题的自动化框架。您正在 运行 宁的命令以及您希望配置的内容(如 IP 地址和用户名)可以轻松配置在一个文件中,该文件通过单个命令传递给二进制文件。例如 HashiCorp 的 Vagrant

Vagrant 允许您在声明性 Vagrant 文件中使用 Ruby 语法配置虚拟机。我在 Google 中搜索了一个利用 Ubuntu 并提供桌面环境的 Vagrant Box 示例,并找到了 this

所以install流浪汉。然后 运行 这些命令:

vagrant init dmhughes/ubuntu-18.04-desktop-gui \
  --box-version 0.0.1
vagrant up

使用 Vagrant 可以让您做很多很酷的事情。传递变量、声明多个 VM、在它们之间共享机密、在它们的虚拟网络接口之间创建桥接网络等。