name¶
此规则用于识别与任务和剧本命名相关的几个问题。这很重要,因为这些名称是在控制台、日志或 Web 界面上识别和记录已执行操作的主要方式。
此规则可以生成以下消息:
name[casing]
- 所有名称都应该以大写字母开头(如果语言支持)。name[missing]
- 所有任务都应该命名。name[play]
- 所有剧本都应该命名。name[prefix]
- 在子任务文件中添加任务名称前缀。(可选)name[template]
- Jinja 模板应该只位于“name”的末尾。这有助于在任务失败时识别源代码内的任务。不鼓励在name
键中使用模板,因为在多种情况下无法呈现名称模板。
如果要忽略上述某些消息,可以将它们中的任何一个添加到 skip_list
中。
name[prefix]¶
此规则仅适用于未命名为 main.yml
或嵌入子目录内的包含的任务文件。它建议将文件路径的词干添加为任务名称的前缀。
例如,如果在名为 tasks/deploy.yml
的文件中有一个名为 Restart server
的任务,则此规则建议将其重命名为 deploy | Restart server
,以便更容易识别它来自何处。如果文件名为 tasks/main.yml
,则该规则将不起作用。
对于嵌入子目录中的任务文件,这些子目录也将作为前缀的一部分附加。例如,如果在名为 tasks/foo/destroy.yml
的文件中有一个名为 Terminate server
的任务,则此规则建议将其重命名为 foo | destroy | Terminate server
。如果文件名为 tasks/foo/main.yml
,则该规则将建议将该任务重命名为 foo | main | Terminate server
。
目前,此子规则只是一个可选规则,因此您需要将其添加到您的 enable_list
中才能激活它。
注意
此规则由 Red Hat 实践社区设计。其背后的原因是,在具有多个(子)任务文件的复杂角色或剧本中,很难理解哪个任务属于哪个文件。添加前缀,结合 Ansible 自动添加的角色名称,可以更容易地跟踪和排除角色剧本的故障。
有问题的代码¶
---
- hosts: localhost # <-- playbook name[play]
tasks:
- name: create placefolder file # <-- name[casing] due lack of capital letter
ansible.builtin.command: touch /tmp/.placeholder
正确的代码¶
---
- name: Play for creating placeholder
hosts: localhost
tasks:
- name: Create placeholder file
ansible.builtin.command: touch /tmp/.placeholder
注意
name[casing]
可以使用 --fix
选项自动修复。