Formularios
Define los formularios que rellenan tus usuarios
Para autores de formularios: cómo se escriben los formularios en YAML, desde dónde se cargan y las propiedades de cada tipo de formulario.
Los formularios son el núcleo de AnsibleForms. Cada formulario es una interfaz web que recoge datos del usuario y, con ellos, ejecuta un playbook de Ansible, una plantilla de AWX, AAP o Ascender, una plantilla de Semaphore, un job de Rundeck o Jenkins, o un workflow.
Los formularios se definen en archivos YAML dentro de la carpeta de formularios. Cada archivo YAML contiene un solo formulario o una lista de formularios, y puedes usar subcarpetas para organizarlos.
VÍDEO: Crea tu primer formulario
Entender la estructura de un formulario
Cada formulario de AnsibleForms se configura con un conjunto de propiedades. Propiedades comunes enumera las propiedades que se aplican a todos los tipos de formulario; las páginas de cada tipo describen las demás.
Cómo se cargan los formularios
AnsibleForms carga los formularios desde las siguientes ubicaciones:
- DESDE REPOSITORIOS : todos los repositorios con el interruptor “Usar para formularios” activado (se admiten varios repositorios)
- Los formularios de todos los repositorios activados se combinan automáticamente.
- En cada repositorio se busca primero una subcarpeta
forms/. - Si no existe la subcarpeta
forms/, se usa la raíz del repositorio. - Los formularios creados en el diseñador que aún no se han subido con push se guardan en una carpeta de preparación (
FORMS_STAGING_PATH) y se cargan junto con ellos.
- DESDE LA CARPETA LOCAL : la carpeta local
forms/(FORMS_FOLDER_PATH), cuando ningún repositorio tiene activado “Usar para formularios”
Nota: Cuando “Usar para formularios” está activado en varios repositorios, todos sus formularios se combinan. Los nombres de los formularios deben ser únicos entre repositorios para evitar conflictos.
Dónde se ejecuta un formulario
El tipo de un formulario decide en qué clase de runner se ejecuta su trabajo: un RTE para ansible, un runner de AWX para awx, aap y ascender, y un runner de su propio tipo para semaphore, rundeck y jenkins.
runner: <name>en el formulario elige por nombre un runner de ese tipo; sin él, el trabajo se ejecuta en el runner predeterminado del tipo.- Un runner desactivado en Conexiones > Runners hace fallar el trabajo, tanto si el formulario lo nombra como si es el predeterminado. El trabajo nunca recurre a otro runner.
- Cuando uno de los roles del usuario enumera
runnersenconfig.yaml, el trabajo solo puede ejecutarse en un runner que enumere uno de esos roles, o se rechaza. Los roles sin esa lista no lo limitan, y un administrador nunca está limitado.
En esta sección
Las siguientes páginas describen en detalle las propiedades de los formularios:
| Página | Qué cubre |
|---|---|
| Propiedades comunes | Propiedades que se aplican a todos los tipos de formulario (name, description, help, type, fields) |
| Formularios de Ansible | Propiedades específicas de type: ansible |
| Formularios de AWX | Propiedades específicas de type: awx |
| Formularios de Semaphore | Propiedades específicas de type: semaphore, que ejecuta una plantilla de Semaphore |
| Formularios de Rundeck | Propiedades específicas de type: rundeck, que ejecuta un job de Rundeck |
| Formularios de Jenkins | Propiedades específicas de type: jenkins, que ejecuta un build de un job de Jenkins |
| Formularios de varios pasos | Propiedades específicas de type: multistep, obsoleto en favor de workflow |
| Formularios de workflow | Propiedades específicas de type: workflow, que ejecuta un workflow |
| Asistente | Reparte los datos de un formulario en varias páginas (funciona sobre cualquier tipo de formulario ejecutable) |
| Subform | Los subformularios solo usan las propiedades comunes |
| Puntos de aprobación | Pausa un trabajo hasta que se apruebe (approval) |
| Notificaciones | Envía correos y mensajes a canales según el estado o los eventos del trabajo (notifications) |
| Acciones según el estado del trabajo | Actúa sobre el formulario cuando un trabajo cambia de estado (onSubmit, onSuccess, …) |