Ansible Tower 拥有强大的搜索工具,提供跨多个功能的搜索和过滤功能。
可接受的搜索条件在可从“关键”按钮访问的可扩展“备忘单”中提供。
使用“清除所有”清除搜索条件。
这些搜索技巧假设您没有搜索主机。本节的大部分内容仍然适用于主机,但有一些细微的差别。典型的搜索语法包含一个字段(左侧)和一个值(右侧)。冒号用于分隔要搜索的字段和值。如果搜索没有冒号(见示例 3),则它被视为简单字符串搜索,其中 ?search=foobar
被发送。以下是用于搜索的语法示例
name:localhost
在此示例中,冒号之前的字符串表示您要搜索的字段。如果该字符串与“字段”或“相关字段”中的任何内容不匹配,则它以与示例 3 相同的方式处理(字符串搜索)。冒号后的字符串是您要在名称属性中搜索的字符串。
organization.name:Default
此示例显示了相关字段搜索。左侧部分中的句点分隔了模型和字段,在本例中为组织。根据搜索的深度/复杂程度,左侧部分中可能有多个句点。
foobar
简单的字符串(关键词)搜索,将在名称和描述字段中使用 icontains
搜索查找该词的所有实例。如果在词语之间使用空格(例如,foo bar),则将返回包含这两个词语的所有结果。如果词语用引号括起来(例如,“foo bar”),Tower 将搜索包含这些词语且词语一起出现的整个字符串。特定的名称搜索将针对 API 名称进行搜索。例如,用户界面中的 Management job
在 API 中为 system_job
。
organization:Default
此示例显示了相关字段搜索,但没有指定与组织一起使用的字段。API 支持此功能,类似于简单的字符串搜索,但针对组织执行(将对名称和描述进行 icontains
搜索)。
要查找某些字段的值,请参考 API 端点以获取大量选项及其有效值。例如,如果您想针对 /api/v2/jobs
-> type
字段进行搜索,您可以通过对 /api/v2/jobs
执行 OPTIONS 请求并查找 API 中的 "type"
条目来查找值。此外,您可以通过滚动到每个屏幕的底部来查看相关搜索。在 /api/v2/jobs
的示例中,相关搜索显示
"related_search_fields": [
"modified_by__search",
"project__search",
"project_update__search",
"credentials__search",
"unified_job_template__search",
"created_by__search",
"inventory__search",
"labels__search",
"schedule__search",
"webhook_credential__search",
"job_template__search",
"job_events__search",
"dependent_jobs__search",
"launch_config__search",
"unifiedjob_ptr__search",
"notifications__search",
"unified_job_node__search",
"instance_group__search",
"hosts__search",
"job_host_summaries__search"
字段的值来自 GET 请求中的键。url
、related
和 summary_fields
不使用。相关字段的值也来自 OPTIONS 响应,但来自不同的属性。相关字段是通过获取 related_search_fields
中的所有值并将末尾的 __search
剥离来填充的。
任何不以字段值或相关字段值开头的搜索都将被视为通用字符串搜索。例如搜索 localhost
将导致 UI 向 API 端点发送 ?search=localhost
作为查询参数。这相当于对名称和描述字段执行 icontains
搜索的快捷方式。
以下是在 Tower 中搜索时应注意的一些事项
目前不支持 OR 查询的语法。所有搜索词都会在查询参数中进行 AND 操作。
搜索参数的左侧部分可以用引号括起来,以支持搜索包含空格的字符串。
目前,字段中的值是预期在 GET 请求中返回的直接属性。无论何时您针对其中一个值进行搜索,Tower 实际上都会执行 __icontains
搜索。例如,name:localhost
会返回 ?name__icontains=localhost
。Tower 目前会对每个字段值执行此搜索,甚至包括 id
,这并不理想。
在适用情况下,使用每列中的箭头以升序或降序排序(以下是以调度列表为例)。
箭头的方向指示列的排序顺序。