跟踪作业

实时输出、extravars、筛选和下载

  1. 跟踪作业
  2. 在输出中查找文本
  3. 浏览很长的输出
  4. 任务结果
  5. 工作流图
  6. 主机和任务

跟踪作业

点击某个作业会打开其页面:以作业的表单为标题,标题栏中是其操作,下方是其输出。

作业的输出

从 7.3.0 起,该页面由卡片组成,每张卡片都可以在其标题下折叠:

卡片 显示内容
摘要 以作业的名称、状态和类型作为标题,下方以三列网格(页面较窄时为两列,再窄则为一列)显示其信息
工作流 对于工作流作业(包括 AWX 或 AAP 工作流作业),显示其图和节点数(参见工作流图)
输出 作业的输出及其工具栏

在 AWX、AAP、Ascender、Jenkins、Semaphore 或 Rundeck 上运行的作业会在那里显示其编号,作为指向该工具中对应页面的链接,在 新标签页中打开。该链接保存在作业上,因此即使运行器后来被重命名或移除,链接仍然有效。

页面会实时更新:每当作业被运行、状态改变、写入输出或被删除时,服务器都会发送一个事件, 页面随即重新读取作业,因此输出会随着作业写入而增长。作业列表也以同样的方式更新。 刷新可手动重新加载作业。

当您位于输出末尾时,页面会随着新行的到来向下跟随。向上滚动阅读之前的行时, 页面会停留在您所在的位置:这时输出底部会显示跳到最新,如果又有新行到来, 它会变为新行。点击它,或者滚动回末尾,即可再次跟随新行。表单页面上提交之后的输出, 以及服务器日志,也以同样的方式跟随新行。

输出工具栏包含:

按钮 作用
显示 Extravars 在输出上方的面板中显示作业运行时使用的 extravars,带有 JSON / YAML 切换和复制
显示工件 在同一面板中显示作业的工件(见下文)
显示参数 对于 Jenkins 作业,替代显示 Extravars:显示其运行时的值,即其构建参数
显示 payload 对于 Rundeck 作业,替代显示 Extravars:显示发送给它的 payload
主机和任务 在输出上方显示 playbook 的主机和任务(参见主机和任务)
刷新 重新加载输出
应用筛选 隐藏名称与输出筛选条件匹配的任务;移除筛选会重新显示它们
复制输出 以纯文本复制输出,可以应用筛选,也可以不应用
下载输出 以 ansibleforms-job-<id>.txt 下载输出

除模板作业之外的每个作业(例如 RTE 上的 playbook 或工作流)都提供显示工件(如果其 playbook 没有用 set_stats 收集工件,则为空),在 AWX、AAP 或 Ascender 上运行的模板作业也提供。Semaphore、Rundeck 和 Jenkins 作业没有工件,因此从不为它们提供。

在工具栏左侧,全部折叠按钮会折叠输出的每个部分(每个 play 和任务),并变为 全部展开,点击后会重新展开它们。

显示 Extravars 需要 showExtravars 角色选项,显示工件需要 showArtifacts 角色选项(参见 角色选项)。密码字段的值以及与 MASK_EXTRAVARS_REGEX 匹配的键的值都会被掩码。

筛选条件由 REGEX_FILTER_JOB_OUTPUT 设置,默认为 \[low\] 。 在输出很多的任务名称中加上 [low] ,应用筛选就会隐藏该任务及其输出行。

多步骤作业的页面会在主作业下方逐个显示每个步骤,每个步骤位于一个标题栏下,例如 步骤 1 · Prepare the server (作业 ID 98),并显示其状态。点击标题(或在标题上按 Enter 或空格键)可折叠该输出, 再次点击则展开。AWX/AAP 工作流还会显示其节点的状态。

工作流作业会把每个节点的输出保存在自己的输出中,每个节点位于一个 WORKFLOW NODE 横幅之下; 它们会实时绘制其图,点击节点即可打开其输出。


在输出中查找文本

从 7.3.0 起,作业页面的标题行上、作业操作的左侧有一个搜索框:在输出中查找。

文本在输出中出现的每个位置都会被高亮,不区分大小写,页面会跳转到第一个位置。按 Enter 会跳到 下一个,并以更醒目的方式显示,工具栏会显示当前是第几个、共几个( 第 2 个,共 4 个 ),或者显示未找到。搜索会先展开输出及其 各个部分,作业运行期间新的行也会被搜索,但页面不会移动。


浏览很长的输出

从 7.3.0 起,很长的输出(在作业页面上,以及表单提交之后的下方)提供以下浏览方式:

控件 作用
固定标题 某个部分(工作流节点、作业的 playbook、多步骤作业的步骤)的标题会固定在顶部,其行在下方滚动
2 个失败 统计失败的任务,不包括 Ansible 被告知要忽略的失败;每次点击都会跳到下一个,并将其展开和高亮。没有失败任务时,1 个错误会改为统计错误行
行号 每个行号都链接到对应的行,例如地址中的 #L45 :打开该地址会滚动到该行并将其高亮
向上和向下按钮 页面滚动后显示在右下角,用于回到顶部或跳到末尾
运行中和中止 作业运行期间,表单页面的状态栏会固定在窗口底部,点击其中的中止会立即停止作业

任务结果

从 7.3.0 起,点击 playbook 输出中某台主机的结果行,会像 AWX 一样在任务结果对话框中打开该结果。

结果行、其后的结果正文( => { ... } )以及失败结果之前打印的错误,在鼠标悬停时会作为一个整体高亮, 点击即可打开对话框。它适用于作业页面以及表单提交之后的下方,前提是 playbook 在 7.3.0 或 更高版本的 RTE 上运行,因为结果与主机和任务来自相同的事件。对话框包含以下选项卡:

选项卡 显示内容
详情 状态、主机、play、任务、模块、循环项、开始时间、持续时间、返回码和消息
JSON 和 YAML 模块的完整结果,带语法着色和行号
标准输出和标准错误 结果的 stdout 和 stderr (如果有)

从 7.5.0 起,与 AWX 一样,无论作业的详细级别如何,都会保存完整结果,以及相应的 JSON、YAML 和输出选项卡; 早于 7.5.0 的 RTE 只在详细模式下保存它。带有 no_log 的任务,其结果会被 Ansible 屏蔽;模块的参数( invocation )和 Ansible 自身的 _ansible* 键会被排除,看起来像机密的键的值会被掩码,并且结果一旦超过 64 KB 的 JSON 就会被截断。


工作流图

从 7.3.0 起,正在运行的工作流的图会自动滑动,让正在运行的节点始终可见。

如果您把图滚动开,它会停留在您放置的位置,并显示跟随正在运行的节点按钮,以便再次跟随。鼠标悬停在节点上 会显示其卡片和完整名称,并突出显示该节点及其连接,图的其余部分则变淡。图带有适应 屏幕和全屏按钮,在表单提交之后的下方,点击节点会像在作业页面上一样打开其输出。


主机和任务

自 7.3.0 起,在 7.3.0 或更高版本的 RTE 上运行的 playbook 作业,会在其文本输出之外记录结构化事件:每个 play、任务 和主机结果,以及汇总。输出工具栏中的主机和任务会在输出上方的面板中显示它们,适用于作业页面以及 表单提交之后的下方。作业有了事件之后就会提供此按钮,作业运行期间面板每隔几秒重新读取一次:

视图 显示内容
网格 每台主机的汇总(ok、changed、failed、unreachable、skipped、rescued、ignored),然后是主机与任务的网格:每个单元格按该主机在该任务上的结果着色,悬停时显示其消息和时间,或者显示未运行
时间线 每个任务显示为一个条形,其长度为最慢主机所用的时间,并显示以秒为单位的时间和总计

文本输出保持原样。事件由 RTE 自带的 af_events 回调插件写入,因此 playbook 无需任何修改。