loop-var-prefix¶
此规则通过在循环中强制使用单个变量名来避免与嵌套循环任务冲突。Ansible 默认使用item
作为循环变量。您可以使用loop_var
来重命名它。可以选择要求变量名前缀。前缀可以通过<loop_var_prefix>
设置进行配置。
此规则会产生以下消息
loop-var-prefix[missing]
- 通过添加loop_var: <variable_name>...
替换任何不安全的隐式item
循环变量。loop-var-prefix[wrong]
- 确保循环变量以<loop_var_prefix>
开头。
此规则源自Ansible最佳实践指南的命名参数部分。
设置¶
您可以通过覆盖其用于检查循环变量命名的默认正则表达式来更改此规则的行为。请记住,在适用情况下,{role}
部分将替换为推断的角色名称。
这是一个可选规则。您必须在 Ansible-lint 配置中启用它,如下所示:
问题代码¶
---
- name: Example playbook
hosts: localhost
tasks:
- name: Does not set a variable name for loop variables.
ansible.builtin.debug:
var: item # <- When in a nested loop, "item" is ambiguous
loop:
- foo
- bar
- name: Sets a variable name that doesn't start with <loop_var_prefix>.
ansible.builtin.debug:
var: zz_item
loop:
- foo
- bar
loop_control:
loop_var: zz_item # <- zz is not the role name so the prefix is wrong