使用Ansible停止基于环境的Tomcat服务

使用Ansible停止基于环境的Tomcat服务,ansible,Ansible,我正在编写ansible脚本来停止远程主机上的tomcat服务 我们有不同的环境,其中一个环境的服务名称不同,其余环境的服务名称相同 下面是我正在使用的任务 - name: stop WEB service win_service: name: "{{ item }}" state: stopped loop: "{{ web_service }}" 群变量 web_service: - 'Tomcat9.0

我正在编写ansible脚本来停止远程主机上的tomcat服务

我们有不同的环境,其中一个环境的服务名称不同,其余环境的服务名称相同

下面是我正在使用的任务

- name: stop WEB service
    win_service:
      name: "{{ item }}"
      state: stopped
    loop: "{{ web_service }}"

群变量

web_service:
  - 'Tomcat9.0.45'
在一个环境中,服务名称为Tomcat9.0.45,而在另一个环境中,服务名称为Tomcat9


有谁能帮助我根据环境更新任务以停止服务吗?

有几种方法可以解决这个问题。一个稳健的选择是向每个具有相关版本的组/主机添加一个变量。例如,在相关组/主机上配置:

tomcat_version: 9.0.45
在第二组/主机上:

tomcat_version: 9
在您的任务中,您根本不需要循环

- name: stop WEB service
  win_service:
    name: "Tomcat{{ tomcat_version }}"
    state: stopped

这样,每个组/主机都有自己的版本。将来也更容易改变(想想如果明天,你会有9.0.60?

谢谢陈A