Prepare for guest setup with cloud-init or similar


This page describes the configuration to enable users to automate VM first boot with cloud-init or similar.

To use this feature, you must install cloud_init or cloudbase_init on your template

In private cloud and VCD, the platform implements cloud-init with configuration drive. See https://abiquo.atlassian.net/wiki/spaces/doc/pages/311377484 .

In public cloud, the platform uses cloud provider metadata. Please check your provider documentation about metadata security.

For Windows in AWS, the platform supports guest setup with CLOUDBASE_INITEC2LAUNCH_V2, EC2LAUNCH, and EC2CONFIG.


Cloud-init in Abiquo

Abiquo supports two main kinds of first boot automation with cloud-init:

  • Abiquo built-in functionality:

    • Guest initial password

    • Fully qualified domain name (FQDN) 

    • SSH key injection

    • User data on Configuration drive or cloud provider metadata

    • Initial network configuration injection (when DHCP is not present)

  • User bootstrap script and variables


Provider support for guest initial passwords

This table describes the priority of remote access credentials for the public cloud providers at the time of writing. Always check your cloud provider documentation for the latest information.

Provider

Operating system

Password priority

Provider

Operating system

Password priority

Azure

Windows

Guest initial password > Password

 

Other

SSH public key > Guest initial password > Password

AWS

All

SSH public key > Guest initial password

GCP

Windows

Password

 

Other

SSH public key

OCI

Windows

Password provided by OCI

 

Other

SSH public key


 


Configure guest initial password

The platform can set an initial password for a VM before it deploys. The administrator can configure this option in a VM template but the user may then edit the VM to change the option.

To configure guest initial passwords, do these steps.

  1. To configure the length and characters, on the Abiquo API server edit abiquo.properties and set the following properties:

    abiquo.guest.password.exclude abiquo.guest.password.length

    For more details see https://abiquo.atlassian.net/wiki/spaces/doc/pages/311375440

  2. To customize messages see the following pages.

    1. https://abiquo.atlassian.net/wiki/spaces/doc/pages/325321123

  3. To enable guest initial passwords, in Abiquo, go to Configuration view Security (see ).

    1. To enable password emails, select the Enable password emails option

    2. To enable password SMS, enter the SMS gateway address

  4. In Abiquo, load and configure appropriate VM templates! See Edit a VM template for guest setup below

Related pages:

 


Configure FQDN

Abiquo can set a hostname and fully qualified domain name (FQDN) before the VM is deployed.

If a user enters an FQDN when they configure the VM, this will override the defaults because it is the highest priority FQDN

If the user does not enter an FQDN, Abiquo uses the following default:

  • Abiquo database ID (on Windows) or the VM_uuid (on Linux, etc); and

  • VM network domain name (from VM NIC or VDC default network) or localdomain

To change the default to always generate the automatic VM name from the database ID:

  1. Login to the Abiquo API Server as administrator

  2. Edit the abiquo.properties file and set the following property

# Generate VM name from database ID. If false use VM_uuid on Linux and VM_database ID on Windows abiquo.api.experimental.hostname13charsFromVirtualMachineDatabaseId=true
  1. Restart the Abiquo server to activate the property

After the user deploys the VM, the user can change the FQDN in the VM operating system. In this case, Abiquo will update the FQDN stored in the platform.


Prepare templates for cloud-init

To enable users to work with cloud init, the administrator prepares VM templates that will run cloud-init services or cloudbase-init services (for Windows) or similar. The compatible version of cloud-init is version 0.7.9 or above, or cloudbase-init.

For VMware (vCenter hosts, vCenter clusters, VCD) and other private cloud hypervisors, where cloud-init uses a , you might need to prepare the operating system of your VM templates for this configuration.

  1. Edit the cloud config installer file. The location of this file will vary by operating system. For example, /etc/cloud/cloud.conf.d/99-installer.cfg. Set the datasource to ConfigDrive as shown here.

    datasource: ConfigDrive: datasource_list: [ConfigDrive]
  2. In the case of Ubuntu 18+, disable any default network configuration utility.

    1. Remove /etc/cloud/cloud.conf.d/subiquity-disable-cloudinit-networking.cfg

    2. Remove /etc/netplan/00-installer-config.yml

To prepare Windows templates for public cloud, see the following pages.

 


Edit a VM template for guest setup

To prepare a VM template for guest setup:

  1. Go to Catalogue

  2. Edit a template with cloud-init or hypervisor tools installed.

  3. Go to Advanced

  4. For Guest setup, select Cloud-Init or Hypervisor tools.

    1. For Windows on AWS, you can select from: CLOUDBASE_INITEC2LAUNCH_V2, EC2LAUNCH, EC2CONFIG

  5. Select Guest initial password to generate an initial password according to platform configuration

    1. For Windows systems we strongly recommend this option

    2. The platform will log in with the template User and Password (see below) and change the Password to the guest initial password.
      The platform will send the guest initial password to the user via mail or SMS, and users can display it with the VM key button

  6. For the User, enter the default user for the template

    1. On Windows, enter Administrator

    2. On Linux, enter root or another user that can run chpassword, with sudo and by always entering the password

      1. If sudo is not available, please contact Abiquo Support to configure the nosudoerrequiredforuser property

  7. For the Password, enter the default password of the user on the VM template

    1. The platform does not save VM passwords

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

  8. Select the Operating system. If required, enter the OS version. For more details see

    Edit VM template to configure Advanced options for guest setup
    Edit VM template to configure Advanced options for guest setup
  9. Optionally, go to Variables and set variables for the VM template. The platform will add these variables to the VM using metadata or user data. See

     Add VM variables for guest setup
    Add VM variables for guest setup
  10. If you are using Cloud-init or similar, you can enter a startup script or configuration on the Bootstrap tab. The platform will add this script to the VM and the VM user may also be able to modify it. For more details, see

 

Add the SSH public key to your user before you deploy VMs. To connect to your VM, you will often require the SSH key pair, for example, to connect to Windows VMs in public cloud via RDP

 

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