如何在 Ansible 中显示原始消息?

如何在 Ansible 中显示原始消息?

我有以下剧本:

---
- name: Find sudo mit PPID 1
  hosts: solaris
  become: true

  tasks:
    - shell: "pgrep -P1 -x sudo | xargs -n1 ptree"
      register: result
    - debug: var=result.stdout_lines

该命令ansible-playbook以 JSON 语法引用命令的标准输出:

ok: [gggggggg] => {
    "result.stdout_lines": [
        "26982 sudo su -", 
        "  26983 -sh", 
        "    6628  zlogin NNNNNNNN", 
        "      6629  -sh"
    ]
}

这对我来说是难以理解的。

是否可以像临时命令那样在不使用 JSON 引用的情况下写入 stdout?

gggggggg | SUCCESS | rc=0 >>
17589 sudo su -
  17590 -sh
    17613 zlogin NNNNNNNN
      17614 -sh
        17646 bash

答案1

尝试使用 to_nice_json 过滤器:

tasks:
- shell: "pgrep -P1 -x sudo | xargs -n1 ptree"
  register: result
- debug: var="{{ result.stdout_lines | to_nice_json }}"

相关内容