- 18 Oct 2024
-
DarkLight
-
PDF
Create Pool & Virtual Server (BIG-IP) - Workflow
- Updated on 18 Oct 2024
-
DarkLight
-
PDF
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
Step 1
From the Itential Automation Platform dashboard, click Automation Studio in the left navigation panel.
Step 2
Click Workflows to expand.
Step 3
In the filter box, enter create pool to filter the workflow list. Double-click Create Pool and Members- F5.
Step 4
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.
Step 5
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.
Step 6
Filter for Create Virtual Server - F5.
Step 7
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.
Step 8
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.
Step 9
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.
Step 10
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.
Step 11
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.
Workflow Video
Step 12
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.
Step 13
Select Workflow from the dropdown list. Name it Lab - Create Pool and Virtual Server - F5 - XX and click CREATE.
Step 14
A fresh workflow canvas opens. We need to add three tasks. A Transformation task and two Child Job tasks.
Step 15
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.
Step 16
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.
Step 17
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.
Step 18
Repeat to connect the remaining tasks.
Step 19
We are ready to configure the tasks. Double click the Transformation task.
Step 20
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.
Step 21
Click the Data tab.
Step 22
Click the Transformation dropdown and enter Lab - F5. The Transformation list will filter. Click Lab - F5 Create Pool and Virtual Server JST to select.
Step 23
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.
Step 24
Double-click the first childjob task to configure it.
Step 25
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.
Step 26
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.
Step 27
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:
Variable | Value |
---|---|
host | loadBalancer |
name | poolName |
description | poolDescription |
partition | partition |
members | poolMembers |
Click Save and close the task configuration panel
Step 28
We now need to configure the second Child Job. Double-click the second Child Job.
Step 29
Click the Details tab. Enter Create Virtual Server for the Summary and then Create Virtual Server using Itential Pre-Built for the Description.
Step 30
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.
Step 31
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:
Variable | Value |
---|---|
host | loadBalancer |
name | virtualServerName |
description | virtualServerDescription |
partition | partition |
poolName | poolName |
destinationAddress | virtualServerDestinationAddress |
destinationPort | virtualServerDestinationPort |
Step 32
Click the SAVE at the top and then the ▶ icon.
Step 33
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.