跳到内容

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 选项自动修复。