# F5 BIG-IP

> Configure the OneFuse F5 BIG-IP Pluggable Module for AS3-based load balancer automation

---

Site [llms.txt](/llms.txt)

---

## Feature highlights

- **AS3-powered**
- **Integrates with OneFuse Naming, IPAM, and DNS modules** to provide services directly within AS3 declarations
- **Provisioning and deprovisioning scenarios**:
  - Create and destroy a new service (for example, a VIP) at once
  - Create a new service (for example, a VIP) and add or remove members and nodes incrementally. As members and machines are deprovisioned, they are removed from the service, and the last member or machine out deletes the service. For example:
    - The first member or machine matching the Tracking ID or (unique) additive key and tagged with the Policy creates the service
    - Any additional members or machines get added to the service
- Supports **Day 2** operations
- View F5 [supported versions](/docs/onefuse/versions/compatibility/#vendors)

## Prerequisites

1. Learn about [F5 BIG-IP](https://www.f5.com/products/big-ip-services).
   - Visit the F5 Knowledge Center for [BIG-IP](https://support.f5.com/csp/knowledge-center/software/BIG-IP).
2. Install and set up F5 BIG-IP.
3. Install and set up [F5 AS3](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/userguide/installation.html#installation) on F5 BIG-IP.
4. Create a OneFuse Service Account in F5 BIG-IP.
5. Learn about [F5 Application Services 3 Extension](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/) and [Composing an AS3 Declaration](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/userguide/composing-a-declaration.html).
6. If the OneFuse Appliance does not have an internet connection, follow the instructions in the section below.

### OneFuse Appliance without internet connection

<div class="alert alert-info" role="alert">


Perform the following only if the OneFuse Appliance does **not** have an internet connection.
</div>


#### Offline setup overview

1. SSH to the OneFuse Appliance.
2. Verify that Python and `pip` are installed.
3. Perform `pip` installs.

#### Verify Python and `pip`

<div class="alert alert-info" role="alert">


Identify a system to run the Python commands from. This can be your desktop or a server in your environment. Python 3 or greater must be installed on the system.
</div>


1. Verify that Python is installed.

   <div class="alert alert-info" role="alert">


   [Python 2 has sunset](https://www.python.org/doc/sunset-python-2/). If Python 2 is installed, upgrade to the latest Python version.
   </div>


   If Python is not installed, or if you are upgrading, download the latest Python from [python.org](https://www.python.org/downloads/).

2. Verify that `pip` is installed. If it is not, [install pip](https://pip.pypa.io/en/stable/installation/).
3. Review Python's [Installing Packages](https://packaging.python.org/tutorials/installing-packages/) documentation.

#### Install the OneFuse Python Package

The OneFuse Python Module is distributed as a Python Package. Install it using `pip`.

<div class="alert alert-info" role="alert">


It is recommended to install the latest OneFuse Python Package that matches the OneFuse Appliance version.
</div>


<div class="alert alert-info" role="alert">


If the OneFuse Python Module is already installed, skip to [Upgrade the OneFuse Python Package](#upgrade-the-onefuse-python-package).
</div>


1. Open a Command Prompt or Terminal window.
2. Install the OneFuse Python Package:
   - **Option 1, install the latest version:** Run `pip install onefuse`.
   - **Option 2, install a specific version:** Optionally, list available versions first, then run `pip install onefuse==<version>`.

#### Upgrade the OneFuse Python Package

Upgrade to the latest OneFuse Python Package using `pip`.

1. Open a Command Prompt or Terminal window.
2. Run `pip install --upgrade onefuse`.

## Setup overview

1. Download the Pluggable Module.
2. Upload the Pluggable Module to OneFuse.
3. Create a [Connection info](/docs/onefuse/configure/connection-info/) for the F5 BIG-IP Endpoint.
4. Create the Module Policy.
5. Consume the F5 BIG-IP Policy through an Upstream Provider.

## Download the OneFuse Pluggable Module

Access the [CloudBolt download article](https://support.cloudbolt.io/cloudbolt/s/article/cloudbolt-2023-5--1983840286--1) to obtain the Pluggable Module ZIP folder.

<div class="alert alert-info" role="alert">


The download article will always contain the latest Pluggable Module ZIP folder(s).
</div>


1. Log in with your CloudBolt Connect account.
2. Download the OneFuse Pluggable Module ZIP folder.

## Upload the module to OneFuse

For first time uploads and upgrading, perform the following:

1. Log in to the OneFuse UI with an account that has the OneFuse **Super Admin** Global role.
2. Select the wrench icon button on the top left of the Top App Bar to access the [Super Admin UI](/docs/onefuse/getting-started/roles-and-permissions/super-admin-tasks/).
3. Select **Pluggable Modules**.
4. Select the **Upload** button on the top-right of the Pluggable Module Management datatable.
5. Select **Module File (.zip)** to select the latest Pluggable Module ZIP folder.
6. Select **Upload**.
7. Upon successful upload, you will be redirected and see the newly uploaded module listed in the Pluggable Module Management datatable.

## Create Connection Info

Create and manage Connection Info for the Pluggable Module Endpoint.

| Field | Description |
| --- | --- |
| **Connection Name** | In the sample payloads, the `f5_endpoint` value (Connection Info Name) is set to `F5_BIGIP_14`. |
| **Connection Host** | F5 BIG-IP Appliance in FQDN or IP address format. |
| **Credentials** | |
| **Authentication Type** | Select `Basic`. |
| **Username/Password** | Credentials for the OneFuse Service Account in F5 BIG-IP. |

## Access module policies

1. Log in to the OneFuse UI.
2. In the Workspace, select **Module** > **F5 BIG-IP** (under the **Pluggable** section) from the left navigation menu.

This area displays all active Module Policies and Deployments. Perform the following actions from the Actions column:

| Action | Workspace role(s) |
| --- | --- |
| View | Admins, Members, or Viewers |
| Edit | Admins or Members |
| Delete | Admins or Members |

### Manage pluggable module policies

Once the Pluggable Module is uploaded by a OneFuse Super Admin, manage OneFuse Pluggable Module Policies.

<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Prerequisites</div>


Create a [Connection info](/docs/onefuse/configure/connection-info/) for the Pluggable Module Endpoint when applicable.
</div>


#### Module policy form

| Field | Description |
| --- | --- |
| **Module Policy Name** | Enter a name for this Module Policy. |
| **Description** | Optional description for this Module Policy. |
| **Policy Parameters** | Provide provisioning and deprovisioning scenarios. See [Sample payloads](#sample-payloads-for-module-policy). |
| **Day2 Action Parameters** | Optional. Provide Day2 Action parameters. |

#### Create a module policy

1. [Access module policies](#access-module-policies).
2. Select **Create** on the top-right of the **F5 BIG-IP Policies** datatable.
3. Fill out the [Module policy form](#module-policy-form).

   Refer to the **Sample payloads** section below for examples.

4. Input **Policy Parameters** for provision and/or de-provision scenarios for the Module Policy.
5. Select **Create**.

#### Update a module policy

1. [Access module policies](#access-module-policies).
2. Find the Module Policy to update and select the edit icon.
3. Edit the information on the [Module policy form](#module-policy-form).
4. Select **Update**.

#### Delete a module policy

<div class="alert alert-warning" role="alert">


Module Policies cannot be deleted if they are associated to a OneFuse Module Deployment.
</div>


1. [Access module policies](#access-module-policies).
2. Find the Module Policy and select the delete icon.
3. Select **Delete** to confirm.

## Sample payloads for module policy

See [Sample payloads](/docs/onefuse/configure/pluggable-modules/sample-payloads/#f5-big-ip) for F5 BIG-IP policy parameter examples.

### Optional policy parameters

| Parameter name | Description |
| --- | --- |
| `locking_level` | Select at which level to lock concurrent runs. Options: `tracking_id`, `endpoint` (locks everything by Connection Info/Endpoint, similar to **Single Threaded Operations** on other Module Endpoints), `additive_key`, `none`, `auto`. If no value is provided, it defaults to `auto`: if `additive_key`, `additive_resource_name` or `additive_data` is not null, locking defaults to `additive_key`, otherwise `endpoint`. |
| `wait_seconds_for_prior_transactions` | Number of seconds to wait for prior transactions. If omitted, defaults to `20` if `additive_key`, `additive_resource_name` or `additive_data` is not null, otherwise `0`. |

## Consume pluggable module with an upstream provider

- [OneFuse API](https://app.swaggerhub.com/apis-docs/cloudbolt/OneFuse/)
- [Ansible](/docs/onefuse/consume/red-hat-ansible/modules/pluggable-modules/)
- [Python](/docs/onefuse/consume/python-module/modules/pluggable-modules/)
- [Terraform](/docs/onefuse/consume/hashicorp-terraform/modules/pluggable-modules/)
- VMware vRealize Automation [7.6](/docs/onefuse/consume/vmware-aria-automation/vrealize-automation-76/modules/pluggable-modules/) and/or [8.1+/Cloud](/docs/onefuse/consume/vmware-aria-automation/aria-automation-8x/modules/pluggable-modules/)
