Introduction
Ansible is a great automation tool, but in the end, itโs still a command-line application.
While AWX/Tower is a great GUI, it is lacking fancy forms that can grab data from several sources.
Thatโs where AnsibleForms comes in. It allows you to build awesome forms, build extravars and send it to Ansible or AWX/Tower.
Quick Navigation
Get up and running quickly with AnsibleForms:
๐ How to Install
Get AnsibleForms running in minutes with Docker or manual setup
Installation Guide๐ Build Your First Form
Create powerful forms with fields, validations, and data sources
Forms DocumentationApplication Capabilities
| Feature | Description |
|---|---|
| Categories | Group multiple forms under categories |
| Role based access | Limit forms based on roles (users and groups) |
| Advanced authentication | Local authentication, Ldap, AzureAD and OIDC authentication |
| Job History & Log | See the history of your jobs, abort running and relaunch |
| Environment variables | Customizable with environment variables |
| Credential manager | Securely store, get and pass credentials to playbooks |
| Repository integration | Sync your forms config files, ansible playbooks and other required files with a git repo |
| Ansible and AWX | Forms can target a local ansible instance or AWX/Tower |
| Swagger API | Has a rest-api and Swagger documentation |
| Designer | Although the forms are NOT built using a graphical designer, a YAML based editor/designer with validation is present |
Form Capabilities
| Feature | Description |
|---|---|
| Cascaded dropdowns | Allow references between fields to create responsive, cascaded dropdown boxes |
| Database sources | Import data into fields from databases (MySql, MSSql, Postgres, Mongo, Oracle) |
| Expression based sources | Import data using serverside expressions (javascript), such as Rest API's, json-files, yaml-files, ... and filter, manipulate and sort them |
| Local expressions | Use the power of javascript (local browser sandbox) to calculate, manipulate, generate, ... |
| Field dependencies | Show/hide fields based on values of other fields |
| Visualization | Many nice visualizations, such as icons, images, colors, responsive grid-system, help descriptions, ... |
| Field validations | Many types of field validations, such min,max,regex,in, ... |
| Group fields | Group fields together, vertically and horizontally |
| Advanced output modelling | Model your form content into objects, the way you want it |
| Approval points | Stop the execution of a form for approval |
| Multistep forms | Execute multiple playbooks in steps from a single form |
| Email notifications | Send email notifications after form execution |
Types of Form Fields
| Field Type | Description |
|---|---|
| text | A text input field |
| textarea | A textarea input field |
| datetime | A datetime input field |
| html | An HTML field |
| file | A file upload field, the file is uploaded prior to the job start and the extravars will contain the uploaded file info. |
| number | A number input field |
| password | A password masked input field |
| checkbox | A checkbox field |
| radio | A radio field (multi options) |
| enum | A multi-column filterable dropdown box |
| expression | A powerfull javascript driven expression field |
| table | A table input field (insert, modify, delete) |
Used Technologies
| Component | Technology |
|---|---|
| Backend | Node.js / Express |
| Database | MySQL |
| Frontend | Vue 3 |
| Layout | Bootstrap 5 / Font Awesome |
Requirements
Requirements depend on how you plan to install AnsibleForms. See the installation section to learn more.