Extended OVF support and template definition

Introduction to extended OVF support and template definition

The Abiquo template definition and OVF support include the optional parameters that are summarized in the following table.

Abiquo API parameter
in template definition 

Section of .ovf file

OVF format

Description

Default

Abiquo API parameter
in template definition 

Section of .ovf file

OVF format

Description

Default

loginUser

Product section

Property with ovf:key="user"

To access a deployed VM using SSH. 

null

loginPassword

Product section

Property with ovf:key="password"

To access a deployed VM using SSH. Remember to change the password immediately after your first login. 

null

osType

OperatingSystemSection

OVF numeric code that represents the operating system type and number of bits. Used to set VMware virtual machine guest OS. ovf:id="{CIM_NO}"

The osType is required to deploy VMs. Abiquo uses it to:

  • create the Abiquo VM template osType value

  • set the VMware guest operating system type

You can also set it using the UI and API.
It also enables users to search for templates (e.g. Ubuntu 64-bit template).

UNRECOGNIZED

osVersion

OperatingSystemSection

Free text field. Used to set VMware virtual machine guest OS. ovf:version="{VERSION_NO_OR_TEXT}"

You can use the osVersion field to:

  • add operating systems not included in the list of codes

  • provide details of operating systems

  • set the VMware guest operating system type

Abiquo uses the OVF value directly as the osVersion in the VM template.

null

ethernetDriverType

RASD items

RASD item code is 10 for ethernet driver

Abiquo always supports E1000 drivers. On ESXi, Abiquo also supports PCNet32 and VMXNET3. On KVM, Abiquo also supports VIRTIO drivers.

Abiquo creates an E1000

diskControllerType

RASD items

RASD ResourceType item code is 5 for IDE controller and 6 for SCSI controller

Depending on the hypervisor, Abiquo supports IDE and SCSI. On KVM Abiquo supports VIRTIO drivers.

If the disk controller type is empty in the template, Abiquo will use the disk controller from the hypervisor, which is IDE on ESXi and KVM.

diskController

RASD items

RASD ResourceSubType free text field.

Abiquo uses it to set VMware SCSI disk controller type. Abiquo uses the OVF value to set the diskController in the VM template. 

On VMware Abiquo creates selected SCSI controller or default

Example OVF parameters in template definition format

These parameters are accessible through the Abiquo API and UI. If you create a template definition using the API or include these parameters in .ovf files, Abiquo will incorporate them into the VM template definition. This means that you can retrieve template definitions using the API and search for those of a particular type based on these fields. Note that the osType code in the .ovf file becomes the readable osType in the template definition.

Template definition

{
   "links" : [
      {
         "title" : "Abiquo" ,
         "rel" : "enterprise" ,
         "type" : "application/vnd.abiquo.enterprise+json" ,
         "href" : "http://abiquo.example.com/api/admin/enterprises/1"
      } ,
      {
         "title" : "Others" ,
         "rel" : "category" ,
         "type" : "application/vnd.abiquo.category+json" ,
         "href" : "http://abiquo.example.com/api/config/categories/1"
      } ,
      {
         "title" : "RHEL6 Build Bot" ,
         "rel" : "edit" ,
         "type" : "application/vnd.abiquo.virtualmachinetemplate+json" ,
         "href" : "http://abiquo.example.com/api/admin/enterprises/1/datacenterrepositories/2/virtualmachinetemplates/17"
      } ,
      {
         "title" : "tasks" ,
         "rel" : "tasks" ,
         "type" : "application/vnd.abiquo.tasks+json" ,
         "href" : "http://abiquo.example.com/api/admin/enterprises/1/datacenterrepositories/2/virtualmachinetemplates/17/tasks"
      } ,
      {
         "title" : "repository" ,
         "rel" : "datacenterrepository" ,
         "type" : "application/vnd.abiquo.datacenterrepository+json" ,
         "href" : "http://abiquo.example.com/api/admin/enterprises/1/datacenterrepositories/2"
      } ,
      {
         "title" : "virtual machines" ,
         "rel" : "virtualmachines" ,
         "type" : "application/vnd.abiquo.virtualmachines+json" ,
         "href" : "http://abiquo.example.com/api/admin/enterprises/1/datacenterrepositories/2/virtualmachinetemplates/17/action/virtualmachines"
      } ,
      {
         "title" : "disks" ,
         "rel" : "disks" ,
         "type" : "application/vnd.abiquo.disks+json" ,
         "href" : "http://abiquo.example.com/api/admin/enterprises/1/datacenterrepositories/2/virtualmachinetemplates/17/disks"
      } ,
      {
         "rel" : "disk0" ,
         "type" : "application/vnd.abiquo.disk+json" ,
         "href" : "http://abiquo.example.com/api/admin/enterprises/1/datacenterrepositories/2/virtualmachinetemplates/17/disks/23"
      } ,
      {
         "title" : "template definition" ,
         "rel" : "templatedefinition" ,
         "href" : "http://rs.abiquo.example.com:9000/ovf/73/desc.ovf"
      } ,
      {
         "title" : "template path" ,
         "rel" : "templatePath" ,
         "href" : "http://abiquo.example.com/am/erepos/1/templates/1/rs.abiquo.example.com/abiport9000/ovf/73/"
      }
   ] ,
   "chefEnabled" : false ,
   "cpuRequired" : 1 ,
   "creationDate" : "2015-03-20T09:20:07.000+0000" ,
   "creationUser" : "SYSTEM" ,
   "description" : "RHEL6 Build Bot" ,
   "ethernetDriverType" : "E1000" ,
   "iconUrl" : "http://rs.abiquo.example.com:9000/public/icons/q.png" ,
   "id" : "17" ,
   "loginPassword" : "password" ,
   "loginUser" : "user" ,
   "name" : "RHEL6 Build Bot" ,
   "osType" : "UNRECOGNIZED" ,
   "osVersion" : "" ,
   "ramRequired" : 1024 ,
   "shared" : false ,
   "state" : "DONE"
}

Template disks

Disks

Disks

{
   "links" : [

   ] ,
   "collection" : [
      {
         "links" : [
            {
               "title" : "disk" ,
               "rel" : "edit" ,
               "type" : "application/vnd.abiquo.disk+json" ,
               "href" : "http://abiquo.example.com/api/admin/enterprises/1/datacenterrepositories/2/virtualmachinetemplates/17/disks/23"
            } ,
            {
               "title" : "conversions" ,
               "rel" : "conversions" ,
               "type" : "application/vnd.abiquo.conversions+json" ,
               "href" : "http://abiquo.example.com/api/admin/enterprises/1/datacenterrepositories/2/virtualmachinetemplates/17/disks/23/conversions"
            } ,
            {
               "title" : "build-bot-rhel6-disk1" ,
               "rel" : "diskfile" ,
               "href" : "http://abiquo.example.com/am/files/1/rs.abiquo.example.com/abiport9000/ovf/73/build-bot-rhel6-disk1.vmdk"
            }
         ] ,
         "sequence" : 0 ,
         "path" : "1/rs.abiquo.example.com/abiport9000/ovf/73/build-bot-rhel6-disk1.vmdk" ,
         "diskFormatType" : "VMDK_STREAM_OPTIMIZED" ,
         "diskFileSize" : 351064576 ,
         "hdRequired" : 4294967296 ,
         "state" : "DONE" ,
         "diskControllerType" : "SCSI" ,
         "diskController" : "lsilogic" ,
         "creationDate" : "2015-03-20T09:20:07.000+0000"
      }
   ]
}



Disk controller

In Abiquo on VMware, the platform default SCSI controller for guest systems is VirtualLsiLogicController.

To change the system default SCSI controller:

abiquo.esxi.scsicontroller

 

To set a disk controller for a VM template in the OVF file and override the defaults:

  • Create a RASD section in your OVF file for a SCSI controller with ResourceType with a value of 6. This will use the default VirtualLsiLogicController

<rasd:ResourceType>6</rasd:ResourceType>
  • Add a ResourceSubType free text field to specify the controller type.
    For example, for a VirtualLsiLogicSASController as found in Windows 2012:

<rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>

You can use the following values:

SCSI disk controller type field text
(ResourceSubType value)

diskController saved in template and created on VMware

SCSI disk controller type field text
(ResourceSubType value)

diskController saved in template and created on VMware

contains paravirtual

ParaVirtualSCSIController

contains bus

VirtualBusLogicController

contains sas

VirtualLsiLogicSASController

other (default value)

VirtualLsiLogicController

 

To set a disk controller for a VM template, see Modify a VM template.

To set a disk controller for a VM, see Modify VM hard disks and Modify VM volumes

 

Guest operating system definition

Abiquo reads the CIM OperatingSystem code in OVF files to create the template definition according to the conversion table.

For VMware ESXi, Abiquo also converts the Abiquo osType and osVersion to the vSphere GuestOSIdentifier. 

This information is stored in the Abiquo VM template only, not the VM. Abiquo reads the template to create the VM but does not store the information in the VM definition itself. Therefore, if you change a VM template after you deploy a VM, the changes will not be made to the VM.

In general, if you do not supply an osVersion, Abiquo will use the latest version of the VMware guest operating system.

See Modify a VM template and Set the guest operating system for VMware

 

What if my operating system is not supported?

For example, for new versions of Windows, Abiquo supports a generic WINDOWS type. If you wish to use this type, complete the osVersion field with a full description.

if your template contains the standard DMTF description for the template, this will be stored in the osVersion field in the template definition.

If you select a generic template, Abiquo will use the latest type of the generic template.

 

Copyright © 2006-2024, Abiquo Holdings SL. All rights reserved