您的第一个表单
编写一个 playbook,在设计器中为它创建表单,启动它并找到对应的作业
本教程从一个全新的安装开始,参见 安装。大约需要十五分钟。
1. 登录
在浏览器中打开 AnsibleForms,并以管理员身份登录。
默认账户为 admin / AnsibleForms!123(或您设置的 ADMIN_* 值);随后会打开 表单 页面:

2. 编写 playbook
ansible 表单会运行 playbooks 文件夹中的某个 playbook,所以先写 playbook。将下面的内容保存为 hello.yaml:
- name: Hello world
hosts: localhost
gather_facts: false
tasks:
- name: Show the values from the form
ansible.builtin.debug:
msg: "Hello {{ your_name }}: a {{ vm_size }} machine in {{ target_env }} (dry run: {{ dry_run }})"
这个 playbook 读取四个变量。接下来创建的表单会把它们作为 extravars 发送,每个字段一个。
把文件放到持久化文件夹(ANSIBLE_PATH)的 playbooks 文件夹中; 如果该文件夹还不存在,请先创建:
即您挂载到 /app/dist/persistent 的文件夹,在安装示例中为 /srv/apps/ansibleforms/persistent:
mkdir -p /srv/apps/ansibleforms/persistent/playbooks
cp hello.yaml /srv/apps/ansibleforms/persistent/playbooks/
即 docker-compose 项目的 data/playbooks 文件夹:
cp hello.yaml data/playbooks/
即持久卷,在 AnsibleForms pod 中挂载于 /app/dist/persistent。先查出 pod 的名称,再把文件复制进去:
kubectl -n ansibleforms get pods
kubectl -n ansibleforms exec <pod> -- mkdir -p /app/dist/persistent/playbooks
kubectl -n ansibleforms cp hello.yaml <pod>:/app/dist/persistent/playbooks/hello.yaml
即服务器的 persistent/playbooks 文件夹,在安装示例中为 /srv/apps/ansibleforms/server:
mkdir -p /srv/apps/ansibleforms/server/persistent/playbooks
cp hello.yaml /srv/apps/ansibleforms/server/persistent/playbooks/
当某个 git 仓库开启了 用于 playbook? 时,playbook 会改为从该仓库运行: 请把
hello.yaml提交到那里。参见 设计器和 git。
3. 创建表单
表单是表单文件夹中的 YAML 文件。设计器在浏览器中编辑它们,并在保存前进行检查。
- 点击顶部菜单中的 设计器,然后点击左侧菜单中的 表单。
- 点击右上角的开关(启动设计器)。它会锁定配置,以免其他人同时编辑, 随后开关显示 由我锁定。
- 点击工具栏的第一个按钮 新建文件,输入文件名
hello-world.yaml。设计器会在其中添加一个 名为New Form的表单。 - 用下面这个表单替换编辑器中的 YAML:
name: Hello world
type: ansible
playbook: hello.yaml
description: Greets you with the values you picked
icon: play
roles:
- default
categories:
- Default
fields:
- name: your_name
type: text
label: Your name
required: true
- name: target_env
type: enum
label: Environment
values:
- development
- test
- production
default: development
required: true
- name: vm_size
type: enum
label: Size
expression: "[{size:'small',cpus:1},{size:'medium',cpus:2},{size:'large',cpus:4}]"
runLocal: true
default: __auto__
required: true
- name: dry_run
type: checkbox
label: Dry run
default: true
- 点击 验证(对勾图标),然后点击 保存。保存会把
hello-world.yaml写入表单文件夹。 - 再次点击开关以释放锁。

这个表单使用了四种字段类型:
| 字段 | 类型 | 作用 |
|---|---|---|
your_name | text | 必填的文本框 |
target_env | enum | 带有固定 values 列表的下拉框 |
vm_size | enum | 由本地 表达式 填充的下拉框;__auto__ 会选中第一项 |
dry_run | checkbox | 复选框,以 true 或 false 发送 |
vm_size 会显示 size 和 cpus 两列,并发送第一列 size;用 valueColumn 可以选择其他列。
roles: [default] 让每个已登录的用户都能运行此表单,categories: [Default] 则把它放进默认 config.yaml 所定义的类别中。
您也可以把
hello-world.yaml复制到FORMS_FOLDER_PATH,并 在 VS Code 中验证它。
4. 启动表单
从 表单 页面打开表单:点击顶部菜单中的 表单,在 Default 类别中选择 Hello world。
填写您的名字,按需修改其他字段。点击 显示 Extravars 查看 playbook 将会 收到的内容,然后点击 提交:

5. 查看输出
作业会立即启动,运行期间其输出显示在表单下方,最后以一条 已完成 栏结束:

debug 任务会打印您填写的值,例如 Hello Alice: a small machine in development (dry run: True)。
没有清单时出现隐式 localhost 警告是正常的;实际使用的表单会设置 inventory。
6. 在作业历史中找到它
每次启动都会保存为一个作业。点击顶部菜单中的 作业:新作业位于 所有作业 的最上方。
点击该作业可再次查看其输出,点击 显示 Extravars 可查看发送了什么。每个作业前面的图标 用于重新运行或删除它:

后续步骤
借助参考页面继续完善这个表单: