我試圖用Ansible運行一個簡單的tail命令。迭代3個字符串,直到找不到所有字符串。如果發現遍歷尾部命令,直到找不到全部。Ansible:shell命令返回空白是致命的
- name: Tail the logs for string
shell: "tail -10 /path/to/log/file.log | egrep 'STRING1|STRING2|STRING3'"
register: tail
until: "'STRING1' and 'STRING2' and 'STRING3' not in tail.stdout_lines"
retries: 10
delay: 5
當我運行上面的任務,並沒有什麼回報,它具有一個致命錯誤退出。儘管這是成功的例子。
fatal: [testserver]: FAILED! => {"changed": true, "cmd": "tail -10 /path/to/log/file.log | egrep 'STRING1|STRING2|STRING3'", "delta": "0:00:00.012770", "end": "2016-09-07 07:44:35.684238", "failed": true, "invocation": {"module_args": {"_raw_params": "tail -10 /path/to/log/file.log | egrep 'STRING1|STRING2|STRING3'", "_uses_shell": true, "chdir": null, "creates": null, "executable": null, "removes": null, "warn": true}, "module_name": "command"}, "rc": 1, "start": "2016-09-07 07:44:35.671468", "stderr": "", "stdout": "", "stdout_lines": [], "warnings": []}
我不確定它爲什麼會以致命狀態結束。
' 'STRING1' 和「STRING2''始終是一個真正的價值,不管是什麼' tail.stdout_lines'包含。 –