当前位置: 首页>>技术教程>>正文


如何使用命令行在XenServer上创建新的虚拟机

, , ,

目的

使用命令行部署XenServer虚拟机。

要求

特权访问XenServer的命令行以及配置的ISO映像存储包含您要安装的Linux发行版的ISO映像。

困难

中等

使用说明

部署虚拟机模板并收集信息

在本指南中,我们将创建一个新的基于Ubuntu Linux的虚拟机。但是,以下过程将适合XenServer支持的任何合适的Linux发行版,这意味着您要安装的Linux发行版模板是XenServer的全部组成部分。首先让我们在XenServer的数据库中搜索模板名称。

在这种情况下,我们正在寻找Ubuntu 16.04:


# xe template-list | grep name-label | grep -i 16.04
          name-label ( RW): Ubuntu Xenial Xerus 16.04

接下来,使用上述模板名称安装新的虚拟机:


# xe vm-install template="Ubuntu Xenial Xerus 16.04" new-name-label="Ubuntu 16.04.1 Desktop amd64"
784b1b7f-0c13-4e9a-9d06-6a3edd9c90c2

将输出的UUID和新的VM名称保存到shell变量中,以备后用。使用变量将使我们的其他命令更易于用户理解和理解:


# UUID=784b1b7f-0c13-4e9a-9d06-6a3edd9c90c2
# NAME="Ubuntu 16.04.1 Desktop amd64"

接下来,使用cd-list列出所有可用的ISO映像并将相关的ISO映像名称存储到变量中,例如:


# xe cd-list
# ISO="ubuntu-16.04.1-desktop-amd64.iso"

接下来,我们处理必要的联网位。列出XenServer的网络,并保存您希望附加到新VM的所需网络UUID:


# xe network-list
uuid ( RO)                : 23e21c78-dfa0-e6f4-9dcd-73da08870fe8                                                                                                                                                      
          name-label ( RW): Host internal management network
    name-description ( RW): Network on which guests will be assigned a private link-local IP address which can be used to talk XenAPI
              bridge ( RO): xenapi


uuid ( RO)                : ae1299a0-c0db-bf00-7702-7e4ab09e1abd
          name-label ( RW): Pool-wide network associated with eth0
    name-description ( RW): 
              bridge ( RO): xenbr0

保存网络UUID:


# NETWORK=ae1299a0-c0db-bf00-7702-7e4ab09e1abd

我们还可以选择将特定的MAC地址绑定到VM的网络接口。将所需的MAC地址存储到变量中:


# MAC="4a:4d:42:ac:b3:7b"

获取虚拟磁盘的UUID,以便我们以后可以更新其大小:


# xe vm-disk-list vm="$NAME"
Disk 0 VBD:
uuid ( RO)             : 01ff5ffe-bde2-becc-ada1-9d1289e017a2
    vm-name-label ( RO): Ubuntu 16.04.1 Desktop amd64
       userdevice ( RW): 0


Disk 0 VDI:
uuid ( RO)             : 5eac954c-d6ce-4e0d-91de-85f9bd70123b
       name-label ( RW): 0
    sr-name-label ( RO): Local storage
     virtual-size ( RO): 10737418240

存储VID的UUID:


# VDI=5eac954c-d6ce-4e0d-91de-85f9bd70123b


配置虚拟机

现在我们已经收集了所有信息,是时候配置新的VM了。首先,将ISO映像附加到新的VM设备,并使虚拟机从ISO启动:


# xe vm-cd-add uuid=$UUID  cd-name=$ISO device=1
# xe vm-param-set HVM-boot-policy="BIOS order" uuid=$UUID

接下来,创建一个网络接口。如果您没有在以下命令中包括MAC选项,则将自动生成MAC地址:


# xe vif-create vm-uuid=$UUID network-uuid=$NETWORK mac=$MAC device=0
b5177fa9-81a2-3233-99c6-e545854dce8c

指定此虚拟机要使用的RAM数量。随意修改以下命令,使其具有所需的RAM大小以适合您的需求:


# xe vm-memory-limits-set dynamic-max=4000MiB dynamic-min=512MiB static-max=4000MiB static-min=512MiB uuid=$UUID

最后,更新虚拟磁盘的大小。下面的命令会将大小增加到15GB:


# xe vdi-resize uuid=$VDI disk-size=15GiB

以上是启动我们的新虚拟机所需的一些基本配置。现在,您可能还考虑更新有关CPU的信息,但是,您可以在执行实际的OS安装后随时执行此操作。

启动虚拟机

现在我们准备启动新的虚拟机:


# xe vm-start uuid=$UUID

连接到VM安装程序

在此阶段,我们使用VNC客户端连接到我们的新虚拟机。首先,我们需要获取一个VNC端口号以连接到:


# DOMID=`list_domains | grep $UUID | awk '{ print $1 }'`
# xenstore-read /local/domain/$DOMID/console/vnc-port
5901

以上命令输出的后两位将为您提供VNC端口号。在这种情况下1。使用vnc客户端进行远程连接:


$ vncviewer -via root@XENSERVER_IP localhost:1

command line virtual machine creation on xenserver

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7720.html,未经允许,请勿转载。