以最低配置创建类似云的虚拟机

以最低配置创建类似云的虚拟机

亚马逊 EC2或者其他 云/IaaS 服务,我可以轻松创建一台新机器,而无需进行大量安装。基本上,我只需选择 RAM/HDD/CPU 并提供公共 SSH 密钥,即可在几秒钟内获得一台全新的机器。

如何使用 VirtualBox(或任何其他虚拟化软件)在本地复制此内容?如果可能的话,我更喜欢需要对实际系统进行最少修改的解决方案。

答案1

您可以使用预建虚拟机以获得相同的效果。创建、自定义然后保存为您的基本模板。就像您使用具有首选设置(字体、页面设置等)的空白办公文档一样,您可以创建一个虚拟机(使用任何虚拟化技术),当您需要新实例时,您可以轻松复制和自定义它。多年来,我有一个针对不同版本和风格的 Linux、Windows 和 Macintosh 的基本操作系统库。

答案2

您可以简单地创建一个光学成像使用 VirtualBox 应用程序,然后多次导入:

  1. 创建符合您所有偏好的虚拟机 - 安装您喜欢的软件(例如,顶部)并根据您的需要进行配置(例如,启用无密码 sudo,设置UseDNS No/etc/ssh/sshd_conf加快登录速度,并在 中设置较小的超时时间/boot/grub/grub.cfg)。
  2. 安装 SSH 服务器并上传你的 SSH 密钥
  3. 在 Linux 上,运行sudo rm -rf /etc/udev/rules.d/以删除持久网络名称关联(否则,您必须重新配置网络)。
  4. 关闭机器(您可能需要先删除一些缓存,以减少机器尺寸)。
  5. 导出虚拟机,可以通过 GUI 使用“文件”->“导出设备”或使用VBoxManage export VM_NAME -o ./myvm.ova

您现在可以根据需要随时导入创建的 ova 文件(使用文件 -> 导入应用程序或VBoxManage import每次执行此操作时,VirtualBox 都会生成一个新的 VM 名称并允许您更改基本参数(CPU、RAM 大小、连接的磁盘等)。

但是,您必须手动编辑 ssh 端口转发规则。您可以使用以下脚本轻松完成此操作:

OVA=vm.ova # Change this to the name of your ova file
VM_NAME=$(VBoxManage import "$OVA" | sed -n 's#.*VM name "\(.*\)".*#\1#p')
sshport=$(python -c 'import random;print(random.randint(1025,65535))')
VBoxManage modifyvm $VM_NAME --natpf1 ssh,tcp,127.0.0.1,$sshport,,22
/bin/echo -e "\nHost vbox-$VM_NAME\n\tHostName localhost\n\tPort $sshport\n" \
          >>~/.ssh/config
echo "Start the VM with    VBoxManage startvm $VM_NAME"
echo "Then, type   ssh vbox-$VM_NAME   to log in to your VM"

现在,您可以使用 ssh 进入计算机ssh vbox-$VM_NAME。如果要部署计算机,必须手动更改更改 SSH 服务器密钥

除了导出和导入之外,您还可以克隆现有的机器。

相关内容