Ansible 如何检查日志中的字符串并验证应用程序状态?

Ansible 如何检查日志中的字符串并验证应用程序状态?,ansible,Ansible,我是Ansible的新手,我想验证应用程序(非服务)是否正在运行,如果没有,启动它。因此,基本上要查找“splunkd正在运行”的输出 “status”命令的输出为 splunkd is running (PID: 15111). splunk helpers are running (PIDs: 15214 15420 15431 15500). 还需要检查所述应用程序的日志文件中是否存在字符串“不存在!”,如果存在,则重新启动应用程序(直到该字符串不再存在于日志中-重新启动时日志当前会旋转

我是Ansible的新手,我想验证应用程序(非服务)是否正在运行,如果没有,启动它。因此,基本上要查找“splunkd正在运行”的输出

“status”命令的输出为

splunkd is running (PID: 15111).
splunk helpers are running (PIDs: 15214 15420 15431 15500).
还需要检查所述应用程序的日志文件中是否存在字符串“不存在!”,如果存在,则重新启动应用程序(直到该字符串不再存在于日志中-重新启动时日志当前会旋转)。讨论中的服务器只存在于生产环境中,我觉得第一次在那里执行代码不太舒服。下面是我到目前为止所做的,我觉得第一块和第三块需要编辑。感谢您的帮助和反馈

  - name: Splunk status
    command: sudo /splunk/bin/splunk status
    changed_when: false
        
  - name: Read log
    shell: cat /splunk/log/splunkd.log
    register: splunk_log

  - name: Restart if "does not exists!", exists
    command: sudo /splunk/bin/splunk restart
    until: splunk_log.stdout.find('does not exists!') == 0
    #when: splunk_log.stdout.find('does not exists!') != -1
    debug: msg="does not exists! exists, restarting"
    retries: 5
    delay: 60

我不明白第一项任务,但我想你是想做这样的事情。此外,对于任务三,请遵循以下步骤