设计器

在浏览器中编辑表单、playbook、清单和工作流

  1. 各个部分
  2. 各个选项卡
  3. 受限的设计者

面向表单作者:设计器的各个部分,以及每个部分的选项卡显示什么。

设计器需要 showDesigner 角色选项。它一次编辑一项内容,即一个 表单、一个 playbook 或一个工作流文件,各个部分位于左侧菜单中。每种文件还需要各自的选项,这些选项 默认都是开启的: Playbook 需要 allowPlaybookDesign , 工作流需要 allowWorkflowDesign , 清单需要 allowInventoryDesign , 变量文件需要 allowVarsFileDesign 。缺少某个选项时,对应部分 是只读的,服务器会拒绝保存、创建、移除或推送其文件;表单和工作流仍然可以选择这些文件。 表单、类别和常量同样需要 allowFormDesign :没有它时它们是只读的,服务器 会拒绝保存、拉取或推送它们。同一时间只能有一个人编辑:参见设计器锁。 角色还可以隐藏其他团队的表单、playbook 和工作流:参见受限的设计者。


各个部分

每个部分编辑一种文件,这些文件保存在本地或仓库中:

部分 编辑的内容
表单 表单文件
类别 config.yaml 中的类别
常量 config.yaml 中的常量
变量文件 表单加载的变量文件
Playbook 表单和工作流运行的 playbook
清单 清单: inventory.yaml 、 group_vars 和 host_vars
工作流 工作流文件

包含文件的部分会在文件浏览器中列出它们,并打开第一个文件;还没有文件的部分会给出提示。 表单部分和每个文件部分的工具栏中,第一个按钮都是新建文件:在清单中它新建一个 清单,在工作流中则新建一个空工作流。文件浏览器的放大镜会打开一个输入框,按名称筛选其中的文件。

标题行上的搜索框会在当前打开的 YAML 中查找文本:标记出它出现的每个位置。它在 YAML 选项卡上可用,前提是您持有设计器锁。


各个选项卡

每个部分都有同样的三个选项卡,它们都基于同一份 YAML:在其中一个选项卡中的编辑会显示在其他选项卡中,保存会将其保存。

  • YAML 是文件的原始内容。
  • 可视化通过字段编辑它。只有编辑涉及的键会改变,因此注释和其余内容都保持原样。
  • 预览显示它的效果,不编辑任何内容。

各部分的可视化和预览选项卡显示的内容:

部分 可视化 预览
表单 表单的设置及其字段,带有设计器中 playbook、清单和工作流的列表 表单的当前样子,包括未保存的编辑;提交时不运行任何内容
类别 以表格形式编辑类别 由类别生成的表单页面菜单
常量 以大纲形式编辑常量(用方向键移动键) 每个常量及其可复制的引用 $(NAME) ,以及使用它的表单
变量文件 编辑变量 每个变量及其在 playbook 中可复制的引用 {{ name }} ,以及加载该文件的表单
Playbook 各个 play:每个 play 的名称、主机、Become、收集 facts 和角色,以及其任务,每个任务带有模块和参数 playbook 的大纲:其 play 及其主机、角色和任务,以及它导入的 playbook
清单 组、其子组、其主机,以及各自设置的变量 以树形显示的清单,以及其 group_vars 和 host_vars
工作流 工作流的图,用于编辑它 试运行:点击节点让它失败

当 YAML 无法读取时,可视化和预览选项卡会说明原因,并提供在 YAML 中显示,在 YAML 中打开对应的行。


受限的设计者

从 7.5.0 起,三个角色选项限制设计器显示哪些表单、playbook 和工作流,让每个团队只设计自己的。 三者默认都开启,对管理员始终开启:

选项 关闭时,设计器只显示
designAllForms ( 编辑所有表单 ) roles 中含有用户某个角色的表单,以及没有被任何隐藏表单使用的子表单
designAllPlaybooks ( 编辑所有 playbook ) 用户的表单运行的 playbook,以及尚无表单使用的 playbook
designAllWorkflows ( 编辑所有工作流 ) 用户的表单运行的工作流文件(包括嵌套的),以及尚无表单使用的工作流文件

表单通过其 playbook、其 ansible 步骤以及它运行的工作流来运行 playbook。受限的设计者不能:

  • 看到隐藏的文件。 它从不被列出或提及:打开它时的响应如同文件不存在,用它的名称新建文件时的响应如同文件已存在。
  • 指向隐藏的文件。 把隐藏表单作为子表单的表单不会显示它的任何内容;指定隐藏 playbook 或工作流的表单或工作流文件会被拒绝。
  • 修改共享的子表单。 同时被隐藏表单使用的子表单是只读的,保存的表单必须保留用户的某个角色。
  • 改动文件中的隐藏表单。 含有多个表单的文件在保存时保持隐藏表单不变,恢复表单备份会被拒绝。
  • 添加由服务器运行的代码。 保存的表单不能新增由服务器运行的表达式或查询,尚未保存的表单的预览不运行它自己的表达式。
  • 在 git 输出中读到文件名。 pull 或 push 的输出会省略提及文件的行。

allowFormDesign、allowPlaybookDesign 和 allowWorkflowDesign 仍然决定显示的文件能否修改。 清单、变量文件、类别和常量对所有设计者都保持可见。只拥有部分设置的用户,在设置页面的 表单 选项卡和凭据的 使用者 选项卡中 只能看到自己的表单和工作流文件。