schema¶
schema 规则根据 JSON schema 验证 Ansible 元数据文件。这些 schema 确保跨版本的 Ansible 语法内容的兼容性。
此 schema 规则是**强制性**的。您不能使用内联 noqa 注释来忽略它。
Ansible-lint 在处理其他规则之前验证 schema 规则。这可以防止意外的语法触发多个规则冲突。
验证的 schema¶
Ansible-lint 目前验证多个 schema,这些 schema 在单独的项目中维护,并独立于 ansible-lint 更新。
与 schema 相关的错误报告应在其各自的存储库中报告,而不是在 ansible-lint 项目中报告。
在 ansible-lint 项目中维护
schema[ansible-lint-config]验证 ansible-lint 配置schema[role-arg-spec]验证 角色参数规范,它与模块参数规范略有不同。schema[execution-environment]验证 执行环境schema[galaxy]验证 集合元数据。schema[inventory]验证匹配inventory/*.yml的 清单文件。schema[meta-runtime]验证匹配meta/runtime.yml的 运行时信息schema[meta]验证匹配meta/main.yml的角色的元数据。有关详细信息,请参阅 角色依赖项 或 role/metadata.py)。schema[playbook]验证 Ansible playbook。schema[requirements]验证匹配requirements.yml的 Ansible 需求 文件。schema[tasks]验证匹配tasks/**/*.yml的 Ansible 任务文件。schema[vars]验证匹配vars/*.yml和defaults/*.yml的 Ansible 变量。
在 ansible-navigator 项目中维护
schema[ansible-navigator]验证 ansible-navigator 配置
schema[meta]¶
对于 meta/main.yml 文件,Ansible-lint 需要一个 galaxy_info.standalone 属性,以明确角色是旧的独立角色还是新的基于集合的角色
Ansible-lint 要求使用 standalone 键以避免混淆并提供更具体的错误消息。例如,meta schema 将仅对独立角色要求某些属性,或阻止使用集合不支持的某些属性。
您不能使用空的 meta/main.yml 文件或仅在 meta/main.yml 文件中使用注释。
schema[moves]¶
这些错误通常看起来像 “foo 在 2.10 中被移动到 bar”,并表示 Ansible 版本之间的模块移动。