我快疯了,我是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是黄色的。
感谢您的支持
答案 0 :(得分:0)
在这种情况下,建议的解决方案是使用var添加调试
- hosts: zimbra1
tasks:
- name: see spammer
shell : /root/spammer.sh
register: spam
- debug:
var: spam
此表单将向您显示有关脚本的所有详细信息,通常使用stderr来显示消息。