表单
定义用户要填写的表单
面向表单作者:表单如何用 YAML 编写、从哪里加载,以及每种表单类型的属性。
表单是 AnsibleForms 的核心。每个表单都是一个网页界面,用于收集用户输入,并利用这些数据运行 Ansible playbook、AWX、AAP 或 Ascender 模板、Semaphore 模板、Rundeck 或 Jenkins 作业,或者一个 工作流。
表单定义在 forms 文件夹中的 YAML 文件里。每个 YAML 文件包含一个表单或一个表单列表,并且可以用子文件夹来组织它们。
视频:创建您的第一个表单
了解表单结构
AnsibleForms 中的每个表单都通过一组属性来配置。通用属性 列出了适用于所有表单类型的属性;各类型专属页面介绍其余的属性。
表单的加载方式
AnsibleForms 从以下位置加载表单:
- 从仓库加载:所有开启了“用于表单”开关的仓库(支持多个仓库)
- 所有已启用仓库中的表单会自动合并。
- 每个仓库首先检查是否有
forms/子文件夹。 - 如果没有
forms/子文件夹,则使用仓库根目录。 - 在设计器中创建但尚未推送的表单保存在暂存文件夹中 (
FORMS_STAGING_PATH),并与它们一起加载。
- 从本地文件夹加载:当没有仓库开启“用于表单”时,使用本地
forms/文件夹 (FORMS_FOLDER_PATH)
注意: 在多个仓库上开启“用于表单”时,它们的所有表单都会合并。表单名称在各仓库之间必须唯一,以避免冲突。
表单在哪里运行
表单的类型决定了其作业在哪类运行器上运行: ansible 使用 RTE, awx 、 aap 和 ascender 使用 AWX 运行器, semaphore 、 rundeck 和 jenkins 则使用各自类型的运行器。
- 在表单上设置
runner: <name>,可按名称选择该类型的某个运行器;不设置时,作业在该类型的默认运行器上运行。 - 如果运行器在连接 > 运行器中被禁用,作业就会失败,无论是表单指定了它,还是它是默认运行器。作业 永远不会退回到其他运行器。
- 当用户的某个角色在
config.yaml中列出了runners时,作业只能在这类角色所列的运行器上运行,否则会被 拒绝。没有该列表的角色不做限制,管理员也从不受限。
本节内容
以下页面详细介绍表单属性:
| 页面 | 涵盖内容 |
|---|---|
| 通用属性 | 适用于所有表单类型的属性( name 、 description 、 help 、 type 、 fields ) |
| Ansible 表单 | type: ansible 特有的属性 |
| AWX 表单 | type: awx 特有的属性 |
| Semaphore 表单 | type: semaphore 特有的属性,用于运行 Semaphore 模板 |
| Rundeck 表单 | type: rundeck 特有的属性,用于运行 Rundeck 作业 |
| Jenkins 表单 | type: jenkins 特有的属性,用于构建 Jenkins 作业 |
| 多步骤表单 | type: multistep 特有的属性,已弃用,建议改用 workflow |
| 工作流表单 | type: workflow 特有的属性,用于运行工作流 |
| 向导 | 把表单的输入拆分到多个页面(适用于任何可执行的表单类型) |
| 子表单 | 子表单只使用通用属性 |
| 审批点 | 暂停作业,直到获得批准( approval ) |
| 通知 | 在作业状态变化或发生事件时发送邮件和通道消息( notifications ) |
| 作业状态动作 | 在作业状态变化时对表单执行操作( onSubmit 、 onSuccess ……) |