Ansible 的 display_args_to_stdout 但仅适用于我自己设置的参数,而不是所有默认参数

Ansible 的 display_args_to_stdout 但仅适用于我自己设置的参数,而不是所有默认参数

ansible-playbook运行时,默认情况下它会打印出该name字段,并使用display_args_to_stdout,它会显示使用的变量,这很有用,因此您无需设置name。但它显示的信息太多。我可以让它只显示我在任务中设置的变量/参数吗?

例如这个剧本任务:

- lineinfile:
    line: alias ll="ls -lhtr"
    path: /root/.bashrc

默认显示如下(即使用ANSIBLE_DISPLAY_ARGS_TO_STDOUT=no):

TASK [lineinfile] ************
ok: [server1]

当我打开时ANSIBLE_DISPLAY_ARGS_TO_STDOUT=yes,它显示如下:

TASK [lineinfile line=alias ll="ls -lhtr", path=/root/.bashrc, _ansible_check_mode=True, _ansible_no_log=False, _ansible_debug=False, _ansible_diff=True, _ansible_verbosity=0, _ansible_version=2.9.9, _ansible_module_name=lineinfile, _ansible_syslog_facility=LOG_USER, _ansible_selinux_special_fs=['fuse', 'nfs', 'vboxsf', 'ramfs', '9p', 'vfat'], _ansible_string_conversion_action=warn, _ansible_socket=None, _ansible_shell_executable=/bin/sh, _ansible_keep_remote_files=False, _ansible_tmpdir=None, _ansible_remote_tmp=~/.ansible/tmp] ***
ok: [server1]

其中包含每个任务的大量变量(例如_ansible_selinux_special_fs=…)。是否可以让它显示以下内容:

TASK [lineinfile line=alias ll="ls -lhtr", path=/root/.bashrc] ******
ok: [server1]

我在 ubuntu linux 18.04 上使用 ansible(v2.9.9)

答案1

问:“显示:TASK [lineinfile line=alias ll="ls -lhtr", path=/root/.bashrc]”

答:没有这样的回调插件但有可能发展它。有2个更简单的解决方案。


将变量放入name。例如

    - name: "lineinfile line={{ my_line }}, path={{ my_path }}"
      lineinfile:
        line: "{{ my_line }}"
        path: "{{ my_path }}"
      vars:
        my_line: alias ll="ls -lhtr"
        my_path: /root/.bashrc

给出

TASK [lineinfile line=alias ll="ls -lhtr", path=/root/.bashrc] ****
changed: [localhost]

下一个选项是loop_control label。例如

    - lineinfile:
        line: "{{ item.my_line }}"
        path: "{{ item.my_path }}"
      loop: "{{ my_lines }}"
      loop_control:
        label: "lineinfile line={{ item.my_line }}, path={{ item.my_path }}"
      vars:
        my_lines:
          - {my_line: alias ll="ls -lhtr", my_path: /root/.bashrc}

给出

TASK [lineinfile] ****
changed: [localhost] => (item=lineinfile line=alias ll="ls -lhtr", path=/root/.bashrc)

相关内容