mik*_*ner 5 ubuntu ubuntu-10.04 virt-install kvm-virtualization
我们有一个运行 KVM 的 Ubuntu 10.04 服务器非常好,但是在找出最干净(和最快)的方式来执行 10.04 来宾的无人值守安装时遇到了麻烦。
要求:
必须将 LVM 卷用于来宾的存储(没有一些 qemu-img 转换或类似的转换)
必须使用 virtio 进行网络和磁盘存储(最好不要在 XML 文件中进行黑客攻击)
必须使用本地镜像 - 所以它很快(例如 <5 分钟)
真的很希望它是完全自动化和非交互式的。(即启动并在几分钟后运行一个功能系统)
将希望能够在开始到指定的IP地址,所以很容易去不看DHCP服务器。
将希望能够指定不同的味道/发行版/版本等。
选项 1: 我们不喜欢从 virt-manager UI 执行此操作——因为您必须在物理服务器上(不远程使用 virt-manager)才能安装到 LVM 分区。这确实有效,但您必须在服务器上运行 VNC 和 Gnome,这并不酷。此外,它是交互式的,您必须单击许多选项,而且我们仍然希望编写包装脚本来执行此操作。
选项 2: 来自 python-vm-builder 包的 vmbuilder 似乎正是我们想要的——因为你可以指定一个本地镜像(为此使用 apt-proxy)但无法让它使用 LVM 卷,也不将 virtio 用于磁盘。
vmbuilder kvm ubuntu --suite=lucid --flavour=virtual --arch=amd64 --mirror= http://192.168.1.1:9999/ubuntu -o --libvirt=qemu:///system --ip=192.168 .1.94 --part=vmbuilder.partition --raw=/dev/VG0/LVtest --templates=mytemplates --firstboot=/root/vm/boot.sh --user=linuxadmin --name=linuxadmin --pass= secretpass --mem=256 --hostname=test --bridge=br0
这只是忽略了 --raw= 部分并创建了一个 qcow 图像文件——并且不使用 virtio。我怀疑我可以将图像文件转换为 LVM 卷并在 XML 中手动添加 virtio 内容,但这看起来很烦人而且很混乱。
选项 3: 这是我们正在使用的,但它不是最佳的——因为它很笨拙,不允许我们指定 IP 地址,而且我们真的无法动态控制(从安装命令/脚本)一些在 kickstart 文件中硬编码的参数。
手动创建一个逻辑卷——然后...
# virt-install --connect qemu:///system -n test -r 1024 --vcpus=1 --disk path=/dev/VG0/LVvm-test model=virtio --pxe --vnc --noautoconsole - -os-type linux --os-variant virtio26 --accelerate --network=bridge:br0 --hvm
这将转到 PXE 引导服务器,该服务器指向带有执行大量配置的 kickstart 文件的本地安装服务器。它确实将 virtio 用于网络和磁盘,所以很好。它确实使用本地镜像和 LVM,这意味着它满足我们的最低要求,但我们希望它是 100% 自动化的。现在,您必须连接到 VNC 控制台(通过 virt-manager)并在 Lucid 安装程序上选择“安装”——这样就破坏了全自动操作。当然,您必须查看系统日志以查看它获得的 IP 地址,以便您可以通过 ssh 连接到该框。
当然,我们不是唯一想要此功能的人!!!
在 RHEV 中,您只需从现成的模板部署虚拟机,该模板基本上是原始模板映像的副本或其快照(以节省空间)
我非常确定,如果您拥有包含所有内容的构建的黄金映像,您可以将其设置为模板,并且您的脚本将仅使用 qemu-img 甚至 dd 克隆它。
该模板应该具有特定于 VM 的详细信息,例如剥离 ssh 密钥(RHEL/Fedora 中的 sys-unconfig,不知道如何在 Ubuntu 中执行此操作),因此当从其部署的 VM 启动时,您会重新生成该数据。
| 归档时间: |
|
| 查看次数: |
2150 次 |
| 最近记录: |