Назад | Перейти на главную страницу

Ansible display args_to_stdout, но только для артов, которые я установил сам, а не для всех по умолчанию

когда ansible-playbook работает, по умолчанию распечатывает name поле, с display_args_to_stdout, он показывает используемые переменные, что полезно, так как вам не нужно устанавливать name. Но он отображает слишком много информации. Могу ли я сделать так, чтобы он отображал только те переменные / аргументы, которые я установил в задаче?

например Эта задача playbook:

- 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]

Я использую ansible (v2.9.9) в ubuntu linux 18.04

Вопрос: "Отображение: ЗАДАЧА [lineinfile line = alias ll =" ls -lhtr ", path = / root / .bashrc]"

A: Нет такого плагин обратного вызова но это возможно развиваться Это. Есть 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)