Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Introduction to guest setup

Abiquo 4.0.2 supports guest setup with cloud init or hypervisor tools. The Abiquo Chef integration now uses cloud-init.

Guest setup runs the first time you deploy a virtual machine. The hypervisor tools guest setup also runs on Linux machines when you add a NIC. 

Guest setup includes the following functionality.

FunctionalityCloud-initHypervisor tools
Set fully qualified domain name (FQDN)(tick)(tick)
Generate a random password at deploy and send by email to owner(tick)(tick)
Inject network configuration if no DHCP server is available(tick)(tick)
Inject SSH keys into guest(tick)(error)
Configuration drive with environment variables and user-data presented to guest OS on an ISO disk.
See Automate first boot with Configuration drive and cloud-init
(tick)(error)


If the guest setup is not successful, the virtual machine deploy will fail and roll back.

Prepare templates for guest setup

To prepare templates for guest setup

  1. Load templates with either cloud-init (configuration drive) support or hypervisor guest tools installed
  2. In the Apps library, edit the template:
    1. Select the appropriate guest setup option (Cloud-Init or Hypervisor tools)
    2. Optionally select "Set initial guest password" 

Windows guest tools configuration

Abiquo will use an unattend file with the variables $adminPassword, $domain and $hostName..

You can configure the path to your own Windows unattend file on the Abiquo Remote Services by setting the following property and placing the file at that location.

// Path to Windows unattend file
com.abiquo.esxi.experimental.customize.win.unattendfile=/root/windows_unattend.xml 

The default Abiquo unattend file is supplied here. You can copy this file to create a custom unattend file on the Remote Services server (Virtual Factory), and change attributes such as the time zone (TimeZone) and the workgroup name (JoinWorkgroup).

 Click here to expand...
<?xml version='1.0' encoding='utf-8'?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
   <settings pass="generalize" wasPassProcessed="false">
      <component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
      </component>
   </settings>
   <settings pass="oobeSystem" wasPassProcessed="false">
      <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <OOBE>
            <SkipMachineOOBE>true</SkipMachineOOBE>
            <HideEULAPage>true</HideEULAPage>
            <SkipUserOOBE>true</SkipUserOOBE>
            <ProtectYourPC>1</ProtectYourPC>
         </OOBE>
         <TimeZone>W. Europe Standard Time</TimeZone>
         <UserAccounts>
            <AdministratorPassword>               
               <Value>$adminPassword</Value>
               <PlainText>true</PlainText>
            </AdministratorPassword>               
         </UserAccounts>
      </component>
   </settings>
   <settings pass="specialize" wasPassProcessed="false">
      <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <RegisteredOwner>Administrator</RegisteredOwner>
         <RegisteredOrganization>Organization</RegisteredOrganization>
         <ComputerName>$hostName</ComputerName>
      </component>
      <component name="Microsoft-Windows-DNS-Client" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <DNSDomain>$domain</DNSDomain>
      </component>
      <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <Identification>
            <JoinWorkgroup>WORKGROUP</JoinWorkgroup>
         </Identification>
      </component>
      <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <RunSynchronous>
            <RunSynchronousCommand wcm:action="add">
               <Path>C:\sysprep\guestcustutil.exe cleanBootExecute</Path>
               <Order>1</Order>
            </RunSynchronousCommand>
            <RunSynchronousCommand wcm:action="add">
               <Path>C:\sysprep\guestcustutil.exe flagComplete</Path>
               <Order>2</Order>
            </RunSynchronousCommand>
            <RunSynchronousCommand wcm:action="add">
               <Path>C:\sysprep\guestcustutil.exe deleteContainingFolder</Path>
               <Order>3</Order>
            </RunSynchronousCommand>
         </RunSynchronous>
      </component>
   </settings>
</unattend>

Set initial guest password

Abiquo can generate a random password in the virtual machine for the Linux root or Windows Administrator user, for the first time it is deployed.

Before you deploy, you can edit the virtual machine to change this setting.

Abiquo will mail the password to the owner, so on the Abiquo Server, check that you have set the mail properties  with the address of the mail server and mail user. See Abiquo Configuration Properties#mail

Also check that the owner has a valid email address.

To customize the email template, see Configure Email Templates

Abiquo does not save the initial password, which creates the following limitations:

  • On Linux, before deploying an instance template, edit the instance's password to set it to the current VM password 

Guest password for Windows

For Windows templates:

  • Set the template user to Administrator
  • You can configure Abiquo so that it will lock the virtual machine while waiting for password configuration

Set abiquo.properties to wait for password configuration on the Abiquo Remote Services 

# Time to wait for guest tools to get up and running after power on
# This value is 15 minutes
com.abiquo.esxi.experimental.customize.configure.timeoutms=900000 
# Polling interval for checking if guest tools is up and running after power on 
# This value is 10 seconds
com.abiquo.esxi.experimental.customize.configure.periodms=30000 

 

Virtual machine

To create a virtual machine with guestSetup, use a template that supports cloud-init or has hypervisor tools installed. Set the appropriate value of the guestSetup attribute for the template.

When you create the virtual machine, Abiquo will detect the guestSetup support and configure the guestSetup value for the virtual machine.

Abiquo will also configure the value of the guestInitialPassword. Before you deploy, you can change this value.

Set fully qualified domain name

Abiquo can set a fully qualified domain name (FQDN) as follows:
  • Manually
    • The FQDN that the user enters for the virtual machine, which has the highest priority
  • Automatically used the option defined the property below
    • A host name based on the Abiquo database ID, plus VM network domain name (from VM NIC or VDC default VLAN), or localdomain
    • A host name that is the VM_uuid, plus VM network domain name, or localdomain. 

The administrator can select one of the automatic generation options by setting the following property 

// Generate VM name from database ID. If false use VM_uuid  
abiquo.api.experimental.hostname13charsFromVirtualMachineDatabaseId=true

The user can set the FQDN when creating the VM using the API. The user can edit the VM and change the FQDN when the virtual machine is not deployed. In this case, the API will check that the FQDN is valid.

After the virtual machine is deployed, the user change change the FQDN in the operating system. In this case, Abiquo will update the FQDN stored in the platform. 

Chef templates

From Abiquo 4.0.2, in private cloud, the Abiquo Chef integration now works with cloud init. You will need a cloud-init compatible template. Configure the Chef server for your enterprise as in previous versions.

From Abiquo 4.0.2 in all public cloud providers, Chef is always available and supported, even if you do not select the Guest setup option in the template. 

  • No labels