ansible输出打印不需要的东西。如何仅格式化和显示特定数据';s

ansible输出打印不需要的东西。如何仅格式化和显示特定数据';s,ansible,ansible-2.x,ansible-inventory,ansible-facts,ansible-template,Ansible,Ansible 2.x,Ansible Inventory,Ansible Facts,Ansible Template,我正在centos中使用ansible 2.4,试图在远程服务器上运行下面的脚本并获得输出。这里的问题是yum info输出也以json格式显示。但我只需要显示输出。如何删除json格式 --- - hosts: GeneralServer tasks: - name: Checking the service status shell: systemctl status {{ item }} with_items: - httpd -

我正在centos中使用ansible 2.4,试图在远程服务器上运行下面的脚本并获得输出。这里的问题是yum info输出也以json格式显示。但我只需要显示输出。如何删除json格式

---

- hosts: GeneralServer

  tasks:
  - name: Checking the service status
    shell: systemctl status {{ item }}
    with_items:
        - httpd
        - crond
        - postfix
        - sshd
    register: service
  - debug: var=service
  - name: Checking the package info
    shell : yum info {{ item }}
    with_items:
        - httpd
        - postfix
    register: info
  - debug: var=info
  - name: Executing the mysql running scripts in mysql
    shell: mysql -u username --password mysql -Ns -e 'show databases;'
    register: databases
  - debug: var=databases 
另外,我是新的回调模块。请帮我解决这个问题


是否可以仅显示标准输出行值。您可以尝试使用不同的回调插件来更改输出,例如:

$ ANSIBLE_STDOUT_CALLBACK=oneline ansible-playbook myplaybook.yml
$ ANSIBLE_STDOUT_CALLBACK=minimal ansible-playbook myplaybook.yml
但一般来说,您不会回避JSON,因为它是Ansible解释数据的方式

为了减少信息量,你可以使用不同的技术。例如过滤器

大概是这样的:

- debug:
    msg: "{{ info.results | json_query('[].stdout_lines[]') }}"

谢谢你的回复。答案是显示的信息结果正是我所需要的。但是,代码也在打印Json。请注意我的评论:一般来说,您不会避免Json,因为Ansible解释数据的方式就是Json。您可以随时编写自己的回调插件,以您喜欢的方式打印数据。是否有任何链接可供回调插件参考。我不熟悉回调插件和python。谢谢你可以举个例子