看不到Ansible剧本的任何输出

时间:2018-11-19 08:48:53

标签: bash shell ansible

我快疯了,我是ansible的新手。 我试图在远程节点上执行脚本并返回该脚本的输出作为输出。

所以我在远程节点中执行此脚本

#!/bin/bash
su - zimbra -c 'cat /var/log/zimbra.log | sed -n 's/.*sasl_username=//p' | sort | uniq -c | sort -n'

并且我将此脚本放在/root/spammer.sh上,并已授予该脚本执行权限。

在我的ansible节点上,我创建了该剧本spammer.yaml

- hosts: zimbra1
  tasks:
    - name: see spammer
      shell : /root/spammer.sh

因此,如果我播放此剧本,则输出如下:

PLAY 1: ZIMBRA1
task 2: zimbra1

而不是电子邮件地址列表(由/var/log/zimbra.log过滤) 为什么我没有任何输出?

任务2上的Zimbra1是黄色的。

感谢您的支持

1 个答案:

答案 0 :(得分:0)

在这种情况下,建议的解决方案是使用var添加调试

  - hosts: zimbra1
tasks:
  - name: see spammer
    shell : /root/spammer.sh
    register: spam
  
  - debug:
    var: spam

此表单将向您显示有关脚本的所有详细信息,通常使用stderr来显示消息。