Multistep forms
Create sequential workflows with multistep forms.
Executes multiple jobs sequentially.
Each step can be a different type (ansible, awx).
Multistep form
- name: Create VM
roles: # reference to roles defined earlier
- vmware
description: Create and start a vm
image: https://picsum.photos/64 # an image url (can be base64)
categories: # reference to categories defined earlier
- Demo
- Vmware
tileClass: bg-danger # a bootstrap background color style (https://getbootstrap.com/)
type: multistep # type is awx, ansible or multistep
steps:
- type: awx
name: Create vm
template: Create VM
key: vmInfo
- type: awx
name: Start vm
template: Start VM
key: vmInfo
- type: ansible
name: Email results
playbook: email.yaml
always: true # always run this task, even if others failed
fieldGroupClasses: # give fieldgroups a custom background
groupname1: bg-info-subtle
groupname2: bg-success-subtle
fields: # list of field objects Form-level property
| Attribute | Comments |
|---|---|
| steps array | Multistep steps <p>A multistep form is basically an array of multiple form type destinations, defined here as steps.</p> |
Step properties
Each step is a new form destination. And steps are executed sequentially.
Use specific properties like continue, always and ifExtraVar to control the flow of a multistep form.
When a step has type: ansible, all ansible-specific form properties apply to that step (e.g. playbook, playbookSubPath, ansibleCredentials, vaultCredentials, inventory, check, diff, tags, varsFiles, approval, notifications, …).
When a step has type: awx, all awx-specific form properties apply to that step (e.g. template, awx, awxCredentials, executionEnvironment, instanceGroups, scmBranch, inventory, check, diff, tags, approval, notifications, …).
| Attribute | Comments |
|---|---|
| basic | |
| name string / required | The name of the form
The name of the step. Used for logging and visualization. |
| type string | Step type
Every step can be an ansible-playbook or an awx-template Choices:
Examples: 1) Run AWX Template Helloworld 2) Run Ansible playbook |
| workflow | |
| key string | Extravar key
Ansible Forms can model the extravars into objects using the formfield Examples: 1) Resize volume |
| ifExtraVar extravar reference | Run step if ...
In a mulitstep form, by default, Ansible Forms will try to run every step sequentially one after the other. Examples: 1) Run step based on checkbox |
| continue boolean | Continue on fail
In a mulitstep form, by default, if 1 step fails, the multistep is stopped. However, if you want to continue to the next step, even if the current step failed, use this attribute and set it to true and the multistep will goto the next step. If this happens the status becomes ‘partially success’. Default: false Examples: 1) |
| always boolean | Always run
In a mulitstep form, by default, if 1 step fails, the multistep is stopped. However, if you always want to run a certain step, even if a step failed somewhere, use this attribute and set it to true and the specific step will always run. Default: false Examples: 1) |
Example
Multi-step forms allow you to break complex workflows into multiple sequential pages, improving user experience and organization. Each step can have its own set of fields and validation.
Two-Step Provisioning Form
name: Server Provisioning
category: Setup
steps:
- name: Basic Configuration
fields:
- server_name
- environment
- size
- name: Network Settings
fields:
- ip_address
- subnet
- gateway
fields:
- name: server_name
type: text
- name: environment
type: select
- name: size
type: select
- name: ip_address
type: text
- name: subnet
type: text
- name: gateway
type: text