我可以为 Ansible 模块的任务定义全局默认值吗?

fun*_*ure 1 defaults ansible

我发现自己反复向 Ansible 的文件相关模块输入参数,如下所示:

- copy:
    […]
    owner: root
    group: root
    mode: ugo=r
Run Code Online (Sandbox Code Playgroud)

尽管假设省略这些所有权参数会导致与任务相同的结果似乎是安全的 'sudo过时”执行,但我想在角色的默认值或每个模块的主机变量的范围内明确定义一次这些参数甚至一组模块。

有没有办法促进这样的定义?

phe*_*mer 5

是的,只要您使用的版本大于等于 2.6,就可以执行此操作。这可以使用module_defaults关键字来完成。

示例用法如下所示:

- hosts: localhost
  gather_facts: no
  module_defaults:
    file:
      owner: foobar
  tasks:
    - file:
        path: /tmp/defaults_test
        state: touch
Run Code Online (Sandbox Code Playgroud)