使用vmbuilder在Ubuntu 8.10上为Xen,KVM,VMware Workstation 6和VMware Server创建虚拟机
版本1.0
作者:Falko Timme
vmbuilder是一个工具(在Ubuntu 8.10上介绍),可以让您构建虚拟机(使用Ubuntu作为操作系统),用于多种虚拟化技术。 目前,它支持Xen,KVM,VMware Workstation 6和VMware Server。 您可以将虚拟机复制到另一个系统(Xen,KVM,VMware Workstation 6或VMware Server主机)并在那里运行。
我不会保证这将为您工作!
1初步说明
我使用的主机名为server1.example.com
的计算机,IP地址为192.168.0.100
这里作为我的主机系统。
因为我们将使用root权限运行本教程中的所有步骤,我们可以使用字符串sudo
来为本教程中的所有命令添加所有命令,也可以通过键入来成为root
sudo su
2安装vmbuilder
vmbuilder
可以安装如下:
apt-get install python-vm-builder
3安装apt-proxy
每当vmbuilder
构建一个新的VM时,它必须从Ubuntu镜像下载所有的软件包,这可能需要相当长的一段时间。 为了加快速度,我们安装apt-proxy
...
apt-get install apt-proxy
...缓存下载的软件包,以便后续的VM安装速度将快得多。
现在打开/etc/apt-proxy/apt-proxy-v2.conf
...
vi /etc/apt-proxy/apt-proxy-v2.conf
...并使用靠近您的镜像替换默认的Ubuntu镜像(例如,如果您在德国,请http://de.archive.ubuntu.com/ubuntu
):
[...] [ubuntu] ;; Ubuntu archive backends = http://de.archive.ubuntu.com/ubuntu min_refresh_delay = 15m [...] |
然后我们重新启动apt-proxy:
/etc/init.d/apt-proxy restart
apt-proxy监听端口9999
,所以我们可以将本地的apt-proxy“mirror”作为参数传递给vmbuilder
脚本。
4使用vmbuilder
看看以下命令,了解如何使用vmbuilder
:
vmbuilder xen ubuntu --help
vmbuilder kvm ubuntu --help
vmbuilder vmw6 ubuntu --help
vmbuilder vmserver ubuntu --help
我现在将创建名为vm7的
四个虚拟机,一个用于Xen,一个用于KVM,一个用于VMware Workstation 6,另一个用于VMware Server。 我假设您正在为虚拟机使用桥接。
vmbuilder
使用模板创建虚拟机 - 此模板位于/ etc / vmbuilder / libvirt /
目录中。 因为我们必须修改模板,我们创建一个副本并修改它:
mkdir -p ~/vm7/mytemplates/libvirt
cp /etc/vmbuilder/libvirt/* ~/vm7/mytemplates/libvirt/
现在我们打开〜/ vm7 / mytemplates / libvirt / libvirtxml.tmpl
...
vi ~/vm7/mytemplates/libvirt/libvirtxml.tmpl
...并更改网络部分
[...] <interface type='network'> <source network='default'/> </interface> [...] |
至
[...] <interface type='bridge'> <source bridge='br0'/> </interface> [...] |
因为我们希望VM使用桥接(如果使用NAT而不是桥接,那么不要修改模板!)。
现在我们来分配我们的虚拟机。 我们创建一个名为vmbuilder.partition
的文件...
vi ~/vm7/vmbuilder.partition
...并定义所需的分区如下:
root 8000 swap 4000 /var 20000 |
这定义了大小为8000MB的根分区( /
),4000MB的交换分区和20000MB的/ var
分区。 当然,您可以自由定义任何你喜欢的分区(只要你也定义root和swap)。
我想在虚拟机中安装openssh-server
。 为了确保每个VM都有一个独特的OpenSSH密钥,当我们创建VM时,我们无法安装openssh-server
。 因此,我们创建一个名为boot.sh
的脚本,该脚本将在VM首次引导时执行。 它将安装openssh服务器
(使用唯一的密钥),并强制用户(我将默认使用默认的密码管理员
以及默认的密码youcl
)在首次登录时更改密码:
vi ~/vm7/boot.sh
# This script will run the first time the virtual machine boots # It is ran as root. # Expire the user account passwd -e administrator # Install openssh-server apt-get update apt-get install -qqy --force-yes openssh-server |
请确保用默认登录名替换用户名管理员
。
(您可以在这里找到更多信息: https : //help.ubuntu.com/community/JeOSVMBuilder#First%20boot )
(您还可以按照以下所述定义“首次登录”脚本: https : //help.ubuntu.com/community/JeOSVMBuilder#First%20login )