如何在Ansible playbook中等待tomcat服务器启动

如何在Ansible playbook中等待tomcat服务器启动,ansible,ansible-inventory,Ansible,Ansible Inventory,这可能是一个奇怪的问题,我尝试过搜索,但找不到我要找的东西。 我有一个下面的剧本,它启动tomcat并检查状态。我如何设置一个条件,在我的剧本完成之前等待它上线。我已经研究了等待模块,但无法在剧本中展示 --- - name: Starting tomcat service on remote host shell: "svcadm enable tomcat" ignore_errors: true - pause: seconds: 10 - name: Ch

这可能是一个奇怪的问题,我尝试过搜索,但找不到我要找的东西。 我有一个下面的剧本,它启动tomcat并检查状态。我如何设置一个条件,在我的剧本完成之前等待它上线。我已经研究了等待模块,但无法在剧本中展示

---
 - name: Starting tomcat service on remote host
   shell: "svcadm enable tomcat"
   ignore_errors: true

 - pause:
     seconds: 10

 - name: Check the State of tomcat service on the remote host
   shell: "svcs tomcat"
   register: tomcat_status

 - set_fact:
     tomcat_state: "{{ tomcat_status.stdout_lines.1.split().0 }}"
tomcat_state的值应该是online,它告诉我们tomcat已启动

我们能在这里做些什么,或者有别的办法吗?如果有人能提供一些意见,我将不胜感激

- name: wait for completion
  wait_for:
      port: <your_port>
      delay: 60
      timeout: 500

通过这种方式,此任务等待60秒,然后检查您指定的端口上是否有问题,并尝试500秒

注意,使用wait_for时可能会出现如下问题:仅因为端口已打开,并不意味着tomcat应用程序实际上已准备好为请求提供服务。如果您试图在完成此任务后立即访问该服务,您可能希望在一个应用程序中使用uri模块。@larsks我确实尝试过,但出现以下错误。我的远程服务器无法从外部访问,也没有internet连接。server1失败| msg:无法连接到mytest.com的端口443:[Errno 146]连接被拒绝SoI我不确定uri模块是否可以工作为什么要从外部访问服务器?将remote_src设置为yes以在节点上执行任务。顺便说一下,我过去一直在等他,因为他问起了