Workflow
F5 BIG-IQ - Modular Automations
Overview
This contains modular workflows that operate when integrated with F5 BIG-IQ. Once installed teams will be able to quickly automate common manual tasks like software upgrade of managed BIG-IP devices, saving a significant amount of time and effort. This library can be used as modular components with other libraries and automations to build comprehensive end-to-end orchestrated workflows with Itential's low-code platform.
Workflows
Name | Overview |
---|---|
Upgrade BIG-IP Device - F5 - BIG-IQ | Upgrades BIG-IP device over F5 BIG-IQ |
For further technical details on how to install and use this Workflow Project, please click the Technical Documentation tab.
Table of Contents
Getting Started
This section is helpful for deployments as it provides you with pertinent information on prerequisites and properties.
Helpful Background Information
Workflows often include logic that varies from business to business. As a result, we often find that our Workflow Projects are more useful as modular components that can be incorporated into a larger process. In addition, they often can add value as a learning tool on how we integrate with other systems and how we do things within the Itential Automation Platform.
While these can be utilized, you may find more value in using them as a starting point to build around.
Prerequisites
Itential Workflow Projects are built and tested on particular versions of IAP. In addition, Workflow Projects are often dependent on external systems and as such, these Workflow Projects will have dependencies on these other systems. This version of F5 - BIG-IQ - REST has been tested with:
- IAP 2023.2
External Dependencies
Name | OS Version | API Version |
---|---|---|
F5 BIG-IQ | ^8.3.0 |
Adapters
Name | Version | Configuration Notes |
---|---|---|
adapter-f5_bigiq | ^0.4.6 |
How to Install
To install the Workflow Project:
- Verify you are running a supported version of the Itential Automation Platform (IAP) as listed above in the Supported IAP Versions section in order to install the Example Project.
- Import the Example Project in Admin Essentials.
Testing
Cypress is generally used to test all Itential Example Projects. While Cypress is an opensource tool, at Itential we have internal libraries that have been built around Cypress to allow us to test with a deployed IAP.
When certifying our Example Projects for a release of IAP we run these tests against the particular version of IAP and create a release branch in GitLab. If you do not see the Example Project available in your version of IAP please contact Itential.
While Itential tests this Example Project and its capabilities, it is often the case the customer environments offer their own unique circumstances. Therefore, it is our recommendation that you deploy this Example Project into a development/testing environment in which you can test the Example Project.
Using this Workflow Project
Workflow Projects contain 1 or more workflows. Each of these workflows have different inputs and outputs.
Upgrade BIG-IP Device - F5 - BIG-IQ
Upgrades BIG-IP device over F5 BIG-IQ
Capabilities include:
- Upgrades F5 BIG-IP device over BIG-IQ API
- Provides option to upload iHealth task before and after upgrade
- Verify sufficient disk space exists on BIG-IP for upgrade
- Verifies license key and provides form input for license key inputs if license re-activation needed and performs license re-activation
- Performs rollback to volume prior to upgrade if upgrade fails
- Performs device discovery and import after upgrade
- Supports upgrade of HA pair of devices as well as upgrade of single device
- Updates device upgrade task to include private keys
- Checks BIG-IP device version compared to target software image version prior to upgrade
- Checks active volume compared to target volume of BIG-IP device during rollback to see if different and to perform reboot if so
Entry Point IAP Component
The primary IAP component to run Upgrade BIG-IP Device - F5 - BIG-IQ is listed below:
IAP Component Name | IAP Component Type | Upgrade BIG-IP Device - F5 - BIG-IQ | Workflow |
---|
Inputs
The following table lists the inputs for Upgrade BIG-IP Device - F5 - BIG-IQ:
Name | Type | Required | Description | Example Value |
---|---|---|---|---|
deviceAData | object | yes | Set of values for device A in HA pair to upgrade | {
"deviceManagementAddress": "1.2.3.4",
"deviceManagementPort": "443",
"deviceManagementHostname": "",
"machineIdFilterProperty": "address",
"machineIdFilterValue": "5.6.7.8",
"targetVolume": "HD1.2"
} |
deviceBData | string | yes | Set of values for device B in HA pair to upgrade. If no second device, leave values as empty string | {
"deviceManagementAddress": "",
"deviceManagementPort": "",
"deviceManagementHostname": "hostname",
"machineIdFilterProperty": "address",
"machineIdFilterValue": "9.8.7.6",
"targetVolume": "HD1.3"
} |
deviceAData.deviceManagementAddress | string | yes | IP address of BIG-IP for license re-activation. If using deviceManagementHostname for license re-activation, leave this value empty as "" | 1.2.3.4 |
deviceAData.deviceManagementPort | string | yes | Port of BIG-IP for license re-activation. If using deviceManagementHostname for license re-activation, leave this value empty as "" | 443 |
deviceAData.deviceManagementHostname | string | yes | Hostname of BIG-IP for license re-activation. If using deviceManagementAddress and deviceManagementPort for license re-activation, leave this value empty as "" | device_hostname |
deviceAData.machineIdFilterProperty | string | yes | The property to use to search for BIG-IP machine ID | address |
deviceAData.machineIdFilterValue | string | yes | The value to use to search for BIG-IP machine Id | 1.2.3.4 |
deviceAData.targetVolume | string | yes | Target volume on BIG-IP device to use for upgrade | HD1.2 |
credentialsFilterValue | string | yes | Value to use to search for credential used in iHealth task upload. If not performing iHealth task upload, assign value "" | iHealth Credential Name |
credentialsFilterProperty | string | yes | Property to use to search for credential used in iHealth task upload. If not performing iHealth task upload, assign value "" | displayName |
adapterId | string | yes | IAP adapter to use to send requests to F5 BIG-IQ for automation | F5-BIG-IQ |
deviceBackupLifeTime | number | yes | The number of days to keep backup file on BIG-IQ | 30 |
deviceBackupDescription | string | yes | Description to associate with device file backup | Backup device before software upgrade |
iHealthTaskName | string | yes | The name to give to iHealth task name | Upload Task for Software Upgrade |
importDeviceTaskName | string | yes | Name of task for importing device to BIG-IQ | Rediscover adc_core |
softwareUpgradeTaskName | string | yes | Name of task for software upgrade | Upgrade BIG-IP |
softwareImageName | string | yes | Image on BIG-IQ to use for software upgrade | BIGIP-14.1.5.4-0.0.2.iso |
uploadiHealthTask | boolean | yes | Value used to determine whether or not to do iHealth upload. If true, performs iHealth upload before and after upgrade and if false, skips both iHealth upload steps. | true |
deviceRebootWait | number | yes | Amount of time in seconds to wait for device to reboot in the event a rollback is performed | 300 |
Outputs
The following table lists the outputs for Upgrade BIG-IP Device - F5 - BIG-IQ:
Name | Type | Description | Example Value |
---|---|---|---|
returnStatus | string | This value is assigned "SUCCESS" if the device upgrade succeeded and is assigned "FAILED" if any step of the device upgrade failed | SUCCESS |
Query Output
The following items show how to query successful results from the output of Upgrade BIG-IP Device - F5 - BIG-IQ:
Result of Device Upgrade
returnStatus
Example Inputs and Outputs
Example 1
Input:
{ "deviceAData": { "deviceManagementAddress": "1.2.3.4", "deviceManagementPort": "443", "deviceManagementHostname": "", "machineIdFilterProperty": "address", "machineIdFilterValue": "5.6.7.8", "targetVolume": "HD1.2" }, "deviceBData": { "deviceManagementAddress": "", "deviceManagementPort": "", "deviceManagementHostname": "hostname", "machineIdFilterProperty": "address", "machineIdFilterValue": "9.8.7.6", "targetVolume": "HD1.3" }, "softwareImageName": "BIGIP-14.1.5.5-0.0.2.iso", "softwareUpgradeTaskName": "Upgrade-BIG-IP", "credentialsFilterValue": "iHealth Name", "credentialsFilterProperty": "displayName", "adapterId": "F5-BIG-IQ", "deviceBackupLifeTime": 30, "deviceBackupDescription": "Backup Device", "importDeviceTaskName": "Rediscover adc_core", "iHealthTaskName": "Upload iHealth task", "uploadiHealthTask": true, "deviceRebootWait": 300 }
Output:
{ "returnStatus": "SUCCESS" }
Example 2
Input:
{ "deviceAData": { "deviceManagementAddress": "1.2.3.4", "deviceManagementPort": "443", "deviceManagementHostname": "", "machineIdFilterProperty": "address", "machineIdFilterValue": "5.6.7.8", "targetVolume": "HD1.2" }, "deviceBData": { "deviceManagementAddress": "", "deviceManagementPort": "", "deviceManagementHostname": "", "machineIdFilterProperty": "", "machineIdFilterValue": "", "targetVolume": "" }, "softwareImageName": "BIGIP-14.1.5.5-0.0.2.iso", "softwareUpgradeTaskName": "Upgrade-BIG-IP", "credentialsFilterValue": "", "credentialsFilterProperty": "", "adapterId": "F5-BIG-IQ", "deviceBackupLifeTime": 30, "deviceBackupDescription": "Backup Device", "importDeviceTaskName": "Rediscover adc_core", "iHealthTaskName": "", "uploadiHealthTask": false, "deviceRebootWait": 300 }
Output:
{ "returnStatus": "SUCCESS" }
API Links
API Name | API Documentation Link | API Link Visibility |
---|---|---|
F5 BIG-IQ API Reference | https://clouddocs.f5.com/products/big-iq/mgmt-api/v0.0/ApiReferences/bigiq_public_api_ref/r_public_api_references.html | Public |
Additional Information
Support
Please use your Itential Customer Success account if you need support when using this Workflow Project.