使用Ansible的Tomcat管理

2019年5月1日 65点热度 0条评论

我在写剧本,需要使用ansible停止/启动tomcat。在正常情况下,我们在服务器上执行此命令以启动/停止tomcat-svcadm disable/enable tomcat并检查我们执行的状态svcs tomcat

我需要从Ansible做同样的事情,但是需要设置一些条件以确保它可以正常执行,因为只有在tomcat正确关闭后,我的主要剧本才会进一步执行以部署代码

以下是我为tomcat角色编写的简单剧本-

---
- name: Stop tomcat service
  shell: "svcadm disable tomcat"

这里的问题有时是在执行该命令后进入维护模式。我们使用
svcs tomcat检查状态,如果它处于MAINTENANCE模式,则需要再次执行命令以确保其进入DISABLED状态。同样,我们通过执行
ps -ef | grep java命令来再次验证它,以确保没有运行任何tomcat。

是否可以通过设置一些条件从Ansible实现此目标。让我知道是否有人可以提供帮助。

解决方案如下:

service module支持solaris SMF。这应该和以下任务一样简单,并且要尊重幂等性:

- name: Stop tomcat
  service:
    name: tomcat
    state: stopped
    enabled: no