Updated Date: 05/22/2026
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)
- Cloud-init executes during the first boot
- Required extensions (DO/AS3) are installed, if not already present
- DO declaration is applied
- AS3 declaration is applied (optional)
The following example demonstrates onboarding a BIG-IP tenant using Cloud-Init:
#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-onboardingNote: Modify DO and AS3 declarations based on your environment requirements.
Use the following commands to troubleshoot Cloud-init issues:
cloud-init statuscat /var/log/cloud-init.log
cat /var/log/cloud-init-output.logcloud-init clean
cloud-init initps 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