您的第一个表单

编写一个 playbook,在设计器中为它创建表单,启动它并找到对应的作业

  1. 1. 登录
  2. 2. 编写 playbook
  3. 3. 创建表单
  4. 4. 启动表单
  5. 5. 查看输出
  6. 6. 在作业历史中找到它
  7. 后续步骤

本教程从一个全新的安装开始,参见 安装。大约需要十五分钟。


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/

当某个 git 仓库开启了 用于 playbook? 时,playbook 会改为从该仓库运行: 请把 hello.yaml 提交到那里。参见 设计器和 git。


3. 创建表单

表单是表单文件夹中的 YAML 文件。设计器在浏览器中编辑它们,并在保存前进行检查。

  1. 点击顶部菜单中的 设计器,然后点击左侧菜单中的 表单。
  2. 点击右上角的开关(启动设计器)。它会锁定配置,以免其他人同时编辑, 随后开关显示 由我锁定。
  3. 点击工具栏的第一个按钮 新建文件,输入文件名 hello-world.yaml。设计器会在其中添加一个 名为 New Form 的表单。
  4. 用下面这个表单替换编辑器中的 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
  1. 点击 验证(对勾图标),然后点击 保存。保存会把 hello-world.yaml 写入表单文件夹。
  2. 再次点击开关以释放锁。

设计器,正在编辑一个表单

这个表单使用了四种字段类型:

字段 类型 作用
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 可查看发送了什么。每个作业前面的图标 用于重新运行或删除它:

作业历史


后续步骤

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

  • 表单:所有表单属性、运行器上的模板、工作流表单、审批点和通知
  • 表单字段:所有字段类型,包括验证、依赖和布局
  • 表达式:从 REST API、数据库和文件填充字段
  • config.yaml 中的 角色 和 类别:决定谁能看到哪个表单
  • 工作原理:启动背后发生了什么,以及所有内容存储在哪里