- 05 Feb 2024
Create Pool & Virtual Server (BIG-IP) - Workflow
- Updated on 05 Feb 2024
Let’s move into the Create Pool & Virtual Server use case. We will begin by reviewing the Itential Pre-Builts that we are using for today’s exercise.
- Create Pool and Members - F5
- Create Virtual Server - F5
These Itential Pre-Builts are an excellent example of modular automations. They can be incorporated as steps in a larger automation very easily. We will incorporate these modular automations through the use of child jobs. A child job is a workflow nested within another workflow, allowing for the same workflows to be referenced in multiple automations. Rather than recreating the same workflow multiple times, we are reusing the same asset so that only one workflow needs to be maintained going forward.
Pre-Built Workflow Video
From the Itential Automation Platform dashboard, click Automation Studio in the left navigation panel.
Click Workflows to expand.
In the filter box, enter create pool to filter the workflow list. Double-click Create Pool and Members- F5.
IAP has four task types: Termination, Automatic, Manual and Operational. Let’s define these individually.
Every automation has Termination tasks at the beginning and end. All other tasks in the automation will be placed between the beginning and ending tasks.
The green tasks represent Automatic tasks. These tasks will execute without intervention, but can also be restricted by scheduling when an automatic tasks will run.
Next are the Manual tasks which are represented by grey tasks. These require human intervention and the workflow designer authorizes who can claim and work each manual task.
The fourth task type is Operational tasks, which are purple. Operational Tasks are used to control workflows with conditional branches and loops and to manipulate runtime data.
The Create Pool and Members - F5 Pre-Built workflow utilizes IAG to configure the F5 load balancer. There are three main steps: a Pre-Check, provisioning, and a Post-Check. Those tasks are executed as REST calls from IAG.
Filter for Create Virtual Server - F5.
Next, click on the Create Virtual Server - F5 workflow. Similar to the Create Pool and Members - F5 Pre-Built, the Create Virtual Server - F5 Pre-Built workflow has tasks for a Pre-Check, Provisioning, and a Post-Check.
Now that we’ve reviewed the pre-built workflows, let’s review the JSON Form and the transformation the automation will use as part of our exercise. Click on JSON Forms in the left navigation window. Then click on the Create Pool and Virtual Server JSON Form.
Similar to the JSON Form you created earlier in our use case, this JSON Form will be used to provide the inputs necessary to provision our pool, pool members and virtual server. It includes Drop Down, Text and Number elements. It also includes a Table element that will submit the data as an array of objects.
We know that users will be submitting data using our form, but when doing that the values are not sent to the workflow individually as our workflow currently expects; they are sent in as a single variable called formData. To handle this, we will need to transform the data. To do that, we’ll use a pre-existing Transformation.
Click on Transformations in the left navigation menu.
In the search box, begin entering Lab – F5 Create Pool and Virtual Server. The list of transformations will filter as you type.
Select the Lab – F5 Create Pool and Virtual Server transformation.
The transformation appears. Use the zoom out / zoom in controls to view the entire transformation. For the purposes of this video, we have cropped the image and zoomed in so you can see all of the transformation’s variables.
The Incoming schema is how the formData variable data will be presented from the Create Pool and Virtual Server JSON Form. It is then broken apart into the individual variables required by our workflow in the Outgoing Schemas.
Now that you have reviewed the pre-built automations as well as the JSON Form and Transformation we will use in our use case, it is time to create our workflow.
Click the + at the top of the left navigation panel.
Select Workflow from the dropdown list. Name it Lab - Create Pool and Virtual Server - F5 - XX and click CREATE.
A fresh workflow canvas opens. We need to add three tasks. A Transformation task and two Child Job tasks.
Add the Transformation task by entering transformation into the Search box. The task list is filtered. Click and drag the Transformation task to the canvas, placing it to the right of the Start task.
Next, we need to add two Child Job tasks to the canvas. Enter child into the search field and the list will filter. Click and drag two Child Job tasks to the right of the Transformation task.
The next step is to add transitions. Which will connect the START, Transformation and Child Job tasks together to form the workflow. This is done by clicking the first task, in this example the START task. A dotted line box will appear around the task. Click the dotted line and drag the transition to the next task.
Repeat to connect the remaining tasks.
We are ready to configure the tasks. Double click the Transformation task.
Click the Details tab to give the task a name and summary. Enter F5 for the title and extract the individual values submitted in the form for the description.
Click the Data tab.
Click the Transformation dropdown and enter Lab - F5. The Transformation list will filter. Click Lab - F5 Create Pool and Virtual Server JST to select.
By changing the Variable Source formData from Static to Job, we are configuring the Transformation task to source the data from the form inputs submitted to the workflow, rather than static inputs.
Change Variable Source for formData under Input from Static to Job. Ensure formData is selected in the Job Variable field.
Click the Save icon.
Double-click the first childjob task to configure it.
Click the Details tab. Enter Create Pool and Members for the Title at the top and then Create Pool and Members with Itential Pre-Built for the Description.
Next, you will need to find the workflow. Click the Workflow dropdown and filter the list, by entering Create Pool and Members. Select Create Pool and Members - F5 from the list. This is the first pre-built workflow we reviewed earlier.
For each Job Variable on the child job task, ensure Task is selected as the Variable Source. Set the Previous Task to Lab - F5 Create Pool and Virtual Server JST. This tells the child job task that the source for all variables is the transformation task.
Set the Task Variable for each task as follows:
Click Save and close the task configuration panel
We now need to configure the second Child Job. Double-click the second Child Job.
Click the Details tab. Enter Create Virtual Server for the Summary and then Create Virtual Server using Itential Pre-Built for the Description.
Click the Data tab. Next, click the Workflow dropdown and enter Create Virtual Server - F5 and select Create Virtual Server – F5 from the list. This is the second pre-built workflow we reviewed earlier.
For each Job Variable on the child job task, ensure Task is selected as the Variable Source. Set the Previous Task to Lab - F5 Create Pool and Virtual Server JST. Set the Task Variable for each task as follows:
Set the Task Variable for each task as follows:
Click the SAVE at the top and then the ▶ icon.
The Run Workflow window opens, showing the variables the workflow requires to run. This workflow expects to receive one variable, formData, which will be passed in from Operations Manager. We will cover Operations Manager in the next module.