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 7 Next »

Abiquo supports guest setup with cloud init or hypervisor tools and the Abiquo Chef integration now uses cloud-init.  Guest setup runs the first time you deploy a VM. The hypervisor tools guest setup also runs on Linux machines when you add a NIC. If the guest setup is not successful, the VM deploy or reconfigure will fail and roll back.

Guest setup includes the functionality described in this table.

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)
 Click here to show/hide the screenshot

Editing a VM with a FQDN set by Abiquo based on the VM UUID (with the default localdomain) and the Guest initial password option selected

Prepare templates for guest setup

To prepare templates for guest setup

  1. Load templates with support for 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" 
 Click here to show/hide the screenshot

 

 

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 may wish to create a custom file to 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

The platform can set an initial password for a VM before it deploys. Before the VM deploys, the user can edit the VM to change the template setting using the Guest initial password checkbox.

Before you begin:

  1. To configure password emails, do these steps
    1. Abiquo will mail the password to the VM 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
    2. To customize the email template, see Configure Email Templates
    3. Check that the VM owner has a valid email address
  2. To prevent user access to VMs while waiting for Windows password, set the following abiquo.properties on the 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 

To generate a random password in the VM, for the first time the it deploys: 

  1. Edit the template to select the Guest initial password option
  2. Set the appropriate username in the template
    • root user on Linux 
    • Administrator user on Windows

Abiquo does not save the initial password, so on Linux, before deploying an instance template, edit the instance's password to set it to the current VM password. 

Set fully qualified domain name

Abiquo can set a fully qualified domain name (FQDN) before the VM is deployed, with one of the following options:
  1. The FQDN that the user manually enters for the VM, which has the highest priority
  2. A hostname based on the Abiquo database ID, plus VM network domain name (from VM NIC or VDC default VLAN), or localdomain (automatic)
  3. A hostname that is the VM_uuid, plus VM network domain name, or localdomain (automatic)

To select the automatic hostname setting, use the following property on the Abiquo API server

// 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 VM is not deployed. In this case, the API will check that the FQDN is valid.

After the VM is deployed, the user can change the FQDN in the VM 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 or cloud-base-init compatible template. 

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. 

Configure the Chef server for your enterprise as in previous versions.

  • No labels