Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Information

Refer VMware Supported OS for Guest Customization for supported Guest OS.

Microsoft Hyper-V Requirements:

  • Hyper-V Templates must be placed in a Cluster Shared Volume in the form of VHDX files.

  • Ensure Hyper-V Integration Tools & service is installed and configured. (3)

Info

Information

Refer Hyper-V Integration Services and Supported Linux and FreeBSD virtual-machines.

Open Virtualization (Ovirt) KVM Requirements:

  • Ovirt Guest Agent & tools must be installed as described in Ovirt Guest Agent and Tools.

  • Ensure VM Templates are in the same datacenter used in HyperCloud to configure the Availability Zone.

VMware vCloud Director:

  • Ensure VM Tools is installed on vApp Templates. (4)

  • Ensure vApp Templates contain only one Tier (Single VM). It must be added to at least one Organization Catalog. (5)

  • Guest OS must belong to the list of the supported OS in VMware Supported OS for Guest Customization.

  • When creating a Template from an existing vApp, set vApp network = none.

  • VM Template Preparation (Pre-Install HyperCloud Agent) (Recommended):
    This topic describes preinstalling the agent on VM Templates so HyperCloud does not need to install the agent on VMs deployed from the VM Template. (6)

    • Linux VM Templates (CentOS/Ubuntu/RHEL):

      • Update the values for HCP_FQDN & run the following command on the Linux VM Template.

...

Note

Caution

  • (1) If the same vCenter Server will be used by more than one HCP, then clone the same VM Template for each HCP.

    • Example: use a Prefix, VMT-HCP-PROD-Win2k16x64, and VMT-HCP-QA-Win2k16x64 which will be used by the PROD and QA HCP respectively.

      • Clone the Guest Customization too and ensure the name matches the VM Template name.

  • (2) Update the HyperCloud_Platform_PROD_FQDN to HyperCloud_Platform_QA_FQDN for customizing VMs deployed from other HyperCloud_Platform(s).

  • (3) For Linux VMs, remove the older version of the kernel and reboot the system.

  • (4) Only vApp Templates created in vCloud or imported from vCenter are supported. ISO and OVA formats are not supported.

  • (5) Use HyperCloud Blueprints to create a multi-tier deployment.

  • (6) Use this only if the VMs deployed using HyperCloud do not have internet access.

  • (7) For Hyper-V & KVM, run the following before shutting down the VM Template:
    sysprep.exe /oobe /generalize /shutdown /mode:vm # /unattend: Use an unattend.xml if available.

VM Template Preparation (cloud-init)

...

Note

Before You Begin

  • Ensure that the VM (Template) has network connectivity to https://repo.skygrid.cloud.

  • Ensure that VM has internet access to Linux repositories.

VMware vSphere Requirements:

  • VM Tools:

    • VMware Tools must be installed on the VM Template or customization will fail.

    • Refer VM Template Preparation (Installing Cloud-Init)

Microsoft Hyper-V Requirements:

  • Hyper-V Templates must be placed in a Cluster Shared Volume in the form of VHDX files.

  • Refer VM Template Preparation (Installing Cloud-init) below,

    • Open Virtualization (Ovirt) KVM Requirements

VMware vCloud Director: Not Supported


VM Template Preparation (Installing Cloud-init):

  • Linux VM Templates (CentOS/Ubuntu): Update the following values:

    #CentOS
    #----------
    sudo yum update -y
    sudo yum install -y cloud-init

    # Update /etc./cloud/cloud.cfg
    # to allow root and password authentication run the following command
    sudo sed -i 's/ssh_pwauth: false/ssh_pwauth: true/g' /etc./cloud/cloud.cfg
    sudo sed -i 's/disable_root: true/disable_root: false/g' /etc./cloud/cloud.cfg

    #vim:syntax=yaml
    datasource_list: ["NoCloud", "ConfigDrive"]


    CentOS 6.x and below*

    #---------------------------

    #remove udev rules for network adapters
    rm /etc./udev/rules.d/70-persistent-net.rules


    #Ubuntu

    sudo apt-get update
    sudo apt-get upgrade -y
    sudo apt-get install cloud-init -y

    #Edit 90_dpkg.cfg to remove items in datasource_list except the following
    datasource_list: [ NoCloud, ConfigDrive, None ]


  • Windows VM Templates (Window 2016):

    • Windows VM requires cloudbase-init for Guest Customization. Run the following command to install Cloudbase-init. (3)


Update the following 3 files as shown below before running sysprep via CloudBase-Init Installer

C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf

[DEFAULT]
username=Admin
groups=Administrators
first_logon_behaviour=no
inject_user_password=false
config_drive_raw_hhd=true
config_drive_cdrom=true
config_drive_vfat=true
bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
verbose=true
debug=true
logdir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
logfile=cloudbase-init.log
default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
logging_serial_port_settings=
mtu_use_dhcp_config=true
ntp_use_dhcp_config=true
metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService
plugins=cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,
        cloudbaseinit.plugins.common.mtu.MTUPlugin,
        cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,
        cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,
        cloudbaseinit.plugins.common.userdata.UserDataPlugin,
        cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin
local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts|


C:\Program Files\Cloudbase Solutions\Cloudbase-Init\confcloudbase-init-unattend.conf

[DEFAULT]
username=Admin
groups=Administrators
first_logon_behaviour=no
inject_user_password=false
config_drive_raw_hhd=true
config_drive_cdrom=true
config_drive_vfat=true
bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
verbose=true
debug=true
logdir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
logfile=cloudbase-init-unattend.log
default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
logging_serial_port_settings=
mtu_use_dhcp_config=true
ntp_use_dhcp_config=true
local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\
metadata_services=
plugins=
allow_reboot=false
stop_service_on_exit=false
check_latest_version=false

C:\Program Files\Cloudbase Solutions\Cloudbase-Init\confunattend.xml

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
  <settings pass="generalize">
    <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">
    <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
      <OOBE>
        <HideEULAPage>true</HideEULAPage>
        <NetworkLocation>Work</NetworkLocation>
        <ProtectYourPC>3</ProtectYourPC>
        <SkipMachineOOBE>true</SkipMachineOOBE>
        <SkipUserOOBE>true</SkipUserOOBE>
      </OOBE>
      <UserAccounts>
        <AdministratorPassword>
            <Value>SAB5AHAAZQByAEcAcgBpAGQAMQAyADMAQQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBQAGEAcwBzAHcAbwByAGQA</Value>
<PlainText>false</PlainText>
            </AdministratorPassword>
       </UserAccounts>
    </component>
  </settings>
  <settings pass="specialize">
    <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">
          <Order>1</Order>
          <Path>cmd.exe /c ""C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Scripts\cloudbase-init.exe" --config-file "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init-unattend.conf" && exit 1

exit 2"</Path>
          <Description>Run Cloudbase-Init to set the hostname</Description>
          <WillReboot>OnRequest</WillReboot>
        </RunSynchronousCommand>
      </RunSynchronous>
    </component>
  </settings>
</unattend>

Once all 3 files are edited, return to the Cloudbase-Init installer and select Sysprep and click Finish. This will generalize the system and shut down the VM. Mark the VM as a template based on the Hypervisor of your choice.

Note

Caution

  • (1) For older Linux distributions remove the /etc./udev/rules.d/70-persistent-net.rules file before shutting down the VM.

  • (2) Remove the NIC on the VM prior to converting the VM to Template.

    • Refer to VM Template Preparation (Installing Cloud-Init).

  • (3) Before installing cloudbase-init in the VM Template, take a snapshot of the VM.

  • (4) Ensure the Administrator default password is configured. In this Example: HyperGrid123.