【问题标题】:Filter/extract a whole line from my stdout in ansible在ansible中从我的标准输出中过滤/提取一整行
【发布时间】:2020-04-30 23:19:16
【问题描述】:

我正在使用命令模块从 ansible playbook 运行我的 shell 脚本。我的剧本打印了一些消息和错误消息,例如(ansible 控制台输出):

rc: 1
start: '2020-04-30 10:42:44.165313'
stderr: ''
stderr_lines: <omitted>
stdout: |-
User verified
Ping test okay
ERROR!!! Unable to connect to machine..Aborted...:Error741

我在寄存器variable(output_1) 中捕获了命令输出。现在我想从上面的输出中提取“错误”消息行。我使用了regex_search(output_1.stdout | regex_search('Error741')),但这给了我确切的词(比如Error741)而不是整行。

我的预期输出:-

"ERROR!!! Unable to connect to machine.. exiting....:Error741"

【问题讨论】:

    标签: ansible


    【解决方案1】:

    你可以像这样修改正则表达式。

    {{ output_1.stdout | regex_search('.*Error741') }}
    

    在您的示例中使用 stdout 文本,此正则表达式将返回以下行。

    ERROR!!! Unable to connect to machine..Aborted...:Error741
    

    还有check more details on regex filter here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-18
      • 2019-06-03
      • 2023-03-23
      • 2021-07-02
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      相关资源
      最近更新 更多