ansible.utils.validate 过滤器 – 使用提供的标准验证数据

注意

此过滤器插件是 ansible.utils 集合 (版本 5.1.2) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install ansible.utils

要在 playbook 中使用它,请指定:ansible.utils.validate

ansible.utils 1.0.0 中的新增功能

概要

  • 根据验证 *引擎* 使用提供的 *标准* 验证 *数据*。

关键字参数

此部分描述过滤器的关键字参数。这些是在以下示例中的值 key1=value1key2=value2 等:input | ansible.utils.validate(key1=value1, key2=value2, ...)

参数

注释

criteria

任意 / 必需

用于验证表示 *数据* 选项的值的标准。

此选项表示传递给过滤器插件的第一个参数。例如 config_data|ansible.utils.validate(config_criteria),在这种情况下,config_criteria 的值表示此选项。

有关表示此值的 *criteria* 类型,请参阅各个验证器插件的文档。

data

任意 / 必需

将根据 *criteria* 验证的数据。

此选项表示以管道格式传递给过滤器插件的值。例如 config_data|ansible.utils.validate(),在这种情况下,config_data 表示此选项。

有关表示此值的 *data* 类型,请参阅各个验证器插件的文档。

engine

字符串

要使用的验证器插件的名称。

此选项可以作为查找插件中的键值对传递。例如 config_data|ansible.utils.validate(config_criteria, engine='ansible.utils.jsonschema'),在这种情况下,值 ansible.utils.jsonschema 表示用于数据验证的引擎。如果未提供该值,则将使用默认值 ansible.utils.jsonschema

该值应采用完全限定的集合名称格式,即 <org-name>.<collection-name>.<validator-plugin-name>

默认值: "ansible.utils.jsonschema"

备注

注意

  • 有关选项 *data* 和 *criteria* 的类型,请参阅 *engine* 选项值中表示的各个验证插件的文档。

  • 有关其他插件配置选项,请参阅 *engine* 选项值中表示的各个验证插件的文档。

  • 插件配置选项可以作为 key=value 对在过滤器插件中传递,也可以作为环境变量传递。

  • *validate* 插件的可配置选项的优先级是:在过滤器插件中作为 key=value 对传递的变量,其次是环境变量。

示例

- name: set facts for data and criteria
  ansible.builtin.set_fact:
    data: "{{ lookup('ansible.builtin.file', './validate/data/show_interfaces_iosxr.json')}}"
    criteria: "{{ lookup('ansible.builtin.file', './validate/criteria/jsonschema/show_interfaces_iosxr.json')}}"

- name: validate data in json format using jsonschema by passing plugin configuration variable as key/value pairs
  ansible.builtin.set_fact:
    data_validity: "{{ data|ansible.utils.validate(criteria, engine='ansible.utils.jsonschema', draft='draft7') }}"

返回值

描述

返回值

字符串

如果数据有效,则返回空列表

如果数据无效,则返回数据中错误的列表

返回: 成功

作者

  • Ganesh Nalawade (@ganeshrn)

提示

每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖列表中较高的变量。