Manual Chapter : Cloud-Init Support for BIG-IP Tenants on VELOS and rSeries (F5OS)

Applies To:

  • BIG-IP

    21.1.0

Cloud-Init Support for BIG-IP Tenants on VELOS and rSeries (F5OS)

Cloud-init is an industry standard startup agent installed on virtual machines to facilitate cloud deployments. Beginning with BIG-IP 21.1.0, cloud-init support is now available for F5OS BIG-IP tenants. You can accelerate the initialization of your BIG-IP instances by passing user data to perform tasks such as onboarding and configuration.

User data can be provided using a bash startup script or a YAML-based cloud-configuration file.

This document describes how to use cloud-init with BIG-IP tenants deployed on VELOS and rSeries platforms running F5OS. It includes supported data sources, modules, configuration examples, and troubleshooting guidance.

Cloud-init enables automated provisioning of BIG-IP instances by executing declarative configuration during the first boot.

Before you begin, ensure the following:

  • VELOS or rSeries platform with F5OS installed
  • Create a cloud-init object with user data in YAML format and with valid syntax on F5OS
  • BIG-IP tenant image imported or uploaded to the device
  • Tenant management network settings are configured, and the cloud-init resource has been selected
  • Tenant is reachable via its management interface (SSH or API)

Cloud-init configuration is supplied during tenant deployment and executed at first boot.

Note: Refer to the tenant deployment guide (Chaitanya’s documentation) for detailed steps. Add hyperlink here.

  • The Cloud-init file must be in a valid YAML format
  • Ensure correct indentation and syntax
  • Configuration can be provided through:
    • API-based deployment
    • CLI workflows

The following data sources are supported:

  • The tenant retrieves metadata and user-data during initial boot
  • Ensure the data source is reachable from the management network
  • Unreachable or invalid data sources result in cloud-init failure

The following cloud-init modules are supported and aligned with BIG-IP VE behaviour:

  • write_files - Writes files to the filesystem
  • runcmd - Executes commands at the end of initialization
  • bootcmd - Executes commands early in the boot process
  • hostname - Sets the system hostname
  • users - Configures users and SSH access

Note: Module behaviour is consistent with BIG-IP VE unless otherwise specified.

The following sections are reused from BIG-IP VE documentation:

  • Cloud-Init modules supported in BIG-IP VE
  • Cloud-Init examples
  • TMOS declared module examples

Cloud-init can be used to automate BIG-IP onboarding using:

  • Declarative Onboarding (DO)
  • Application Services 3 (AS3)

  1. Cloud-init executes during the first boot
  2. Required extensions (DO/AS3) are installed, if not already present
  3. DO declaration is applied
  4. AS3 declaration is applied (optional)

The following example demonstrates onboarding a BIG-IP tenant using Cloud-Init:

yaml
#cloud-config

write_files:
  - path: /config/cloud/do.json
    permissions: '0644'
    content: |
      {
        "class": "DO",
        "schemaVersion": "1.0.0",
        "declaration": {
          "class": "Device",
          "async": true
        }
      }

runcmd:
  - echo "Starting DO onboarding"
  - restcurl -X POST -d @/config/cloud/do.json http://localhost:8100/mgmt/shared/declarative-onboarding

Note: Modify DO and AS3 declarations based on your environment requirements.

Use the following commands to troubleshoot Cloud-init issues:

cloud-init status

bash
cat /var/log/cloud-init.log
cat /var/log/cloud-init-output.log

bash
cloud-init clean
cloud-init init

ps aux | grep cloud-init

Issue Possible Cause Resolution
Cloud-init not executing Invalid YAML Validate syntax
DO/AS3 not applied API not reachable Verify management connectivity
Data source failure Incorrect path or URL Verify data source availability
Commands not running Timing issues Use runcmd instead of bootcmd

  • Supported modules may differ from standard Linux Cloud-init implementations
  • Initialization depends on the management network availability
  • Timing dependencies may impact DO/AS3 execution
  • Behaviour may vary between BIG-IP VE and F5OS tenants