Ansible grep多个文件,然后将输出发送到邮件使用了错误的清单-已解决

如何解决Ansible grep多个文件,然后将输出发送到邮件使用了错误的清单-已解决

我正在尝试获取多个目录中的某些文本,然后发送输出,当我在机器上使用相同的shell时,它可以正常工作并发送请求的输出,但是当尝试在其中使用ansible时遇上我出错了。

- name: Extract logs from server
  hosts: all
  tasks:
  - name: execute
    shell: grep -ir {{ my_var }}  /var/log/folder/folder/* | mailx -s "Findings" {{ email }}

my_var:1234-abcd-1a2b3c3d

电子邮件:bla.bla@company.com 错误

fatal: [10.54.229.13]: Failed! => {"changed": true,"cmd": "grep -ir 37f624c3-c898-4e2b-958a-ab78d20a03fe /var/log/3ds/components/* > /tmp/log","delta": "0:00:00.005845","end": "2020-10-05 17:28:17.509948","msg": "non-zero return code","rc": 2,"start": "2020-10-05 17:28:17.504103","stderr": "grep: /var/log/3ds/components/*: No such file or directory","stderr_lines": ["grep: /var/log/3ds/components/*: No such file or directory"],"stdout": "","stdout_lines": []}

我还尝试过grep> /tmp/tmp.file,然后从那里开始管理tmp.file | mailx内容。 并且可以在机器本身上使用时正常工作,但不能扔掉。

尝试时:

"find /var/log/folder/components/* -type f -exec grep 37f624c3-c898-
 {} \; > /tmp/log "

获得以下信息:

ERROR! Syntax Error while loading YAML.
  found unkNown escape character
The error appears to have been in '/tmp/awx_730_htsr76go/project/v2_log_extraction.yml': line 9,column 103,but may
be elsewhere in the file depending on the exact Syntax problem.
The offending line appears to be:
  - name: execute
    shell: "find /var/log/folder/components/* -type f -exec grep 37f624c3-c898 {} \; > /tmp/log "
                                                                                                      ^ here

在剧本中使用var时

- name: Extract logs from server
  hosts: all
  become: yes
  tasks:
  - name: execute
    shell: "find /var/log/folder/components/* -type f -exec grep "{{ my_var}}" {} \; | mailx -s "log" {{ email }}"
    args:
      executable: /bin/sh

出现以下错误

    The error appears to have been in '/tmp/awx_733_qiog0f53/project/v2_log_extraction.yml': line 9,column 64,but may
    be elsewhere in the file depending on the exact Syntax problem.
    The offending line appears to be:
  - name: execute
    shell: "find /var/log/3ds/components/* -type f -exec grep {{ my_var}} {} \; | mailx -s "log" {{ email }}"
                                                                             ^ here
We Could be wrong,but this one looks like it might be an issue with
    missing quotes.  Always quote template expression brackets when they
    start a value

请建议获得结果的最佳方法

嗨, 第一个代码运行完美。 问题出在椅子和电脑之间:D 我在错误的服务器上使用了错误的清单,实际上是/ var / log / folder / folder

感谢每个人的帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?