var-naming¶
此规则检查变量名称,以确保它们符合要求。
变量名称必须仅包含小写字母数字字符和下划线 _
字符。变量名称还必须以字母或下划线 _
字符开头。
有关更多信息,请参阅 Ansible 文档中的创建有效的变量名称主题和命名事物(Ansible 的良好实践)。
您还应该充分了解特殊变量,也称为魔法变量,尤其是因为它们中的大多数只能读取。 虽然 Ansible 只会忽略任何设置它们的尝试,但 linter 会通知用户,这样他们就不会对实际上没有任何作用的行感到困惑。
可能的错误消息
var-naming[non-string]
:变量名称必须是字符串。var-naming[non-ascii]
:变量名称必须是 ASCII。var-naming[no-keyword]
:变量名称不能是 Python 关键字。var-naming[no-jinja]
:变量名称不得包含 jinja2 模板。var-naming[pattern]
:变量名称应与 ... 正则表达式匹配。var-naming[no-role-prefix]
:角色内的变量名称应使用role_name_
作为前缀。前缀之前接受下划线。var-naming[no-reserved]
:变量名称不得是 Ansible 保留名称。var-naming[read-only]
:此特殊变量是只读的。
注意
当使用带有 vars
的 include_role
或 import_role
时,vars 应以包含的角色名称前缀开头。由于此角色可能尚未符合此规则,您可能需要使用 # noqa: var-naming[no-role-prefix]
注释暂时禁用此规则。
设置¶
可以通过更改以下设置来更改此规则的行为
有问题的代码¶
---
- name: Example playbook
hosts: localhost
vars:
CamelCase: true # <- Contains a mix of lowercase and uppercase characters.
ALL_CAPS: bar # <- Contains only uppercase characters.
v@r!able: baz # <- Contains special characters.
hosts: [] # <- hosts is an Ansible reserved name
role_name: boo # <-- invalid as being Ansible special magic variable