Ansible完成后Tomcat进程被中止/终止

Ansible完成后Tomcat进程被中止/终止,tomcat,ansible,Tomcat,Ansible,我正在使用Ansible 2.8.4-1.el7,以便针对一系列RedHat实例/服务器自动化一些任务 我使用一个无密码密钥通过SSH登录到实例中,用户可以像tomcat一样运行进程,但不能完全像sudo那样运行。Tomcat服务器有一个带有一些函数的脚本,用于控制启动和停止操作……这就是我想用Ansible模拟的,但到目前为止,每当我这样做时:/some/path/tomcat9_dev/bin/tomcat9_dev start它确实会启动服务器,但进程在Ansible完成执行后退出 有没有

我正在使用Ansible 2.8.4-1.el7,以便针对一系列RedHat实例/服务器自动化一些任务

我使用一个无密码密钥通过SSH登录到实例中,用户可以像tomcat一样运行进程,但不能完全像sudo那样运行。Tomcat服务器有一个带有一些函数的脚本,用于控制启动和停止操作……这就是我想用Ansible模拟的,但到目前为止,每当我这样做时:/some/path/tomcat9_dev/bin/tomcat9_dev start它确实会启动服务器,但进程在Ansible完成执行后退出

有没有办法实际执行该脚本并在Ansible完成后让Tomcat服务器继续运行

如果我通过SSH登录到服务器,执行脚本并退出,它就可以正常工作。我还为启动脚本设置了睡眠时间,通过Ansible执行它,可以查看Tomcat进程、测试Web应用程序等,但Ansible完成后,该进程再次退出

我确实是这样开始使用服务模块的:

- name: Stop service
  systemd:
    state: stopped
    name: tomcat9_dev

- name: Start service
  systemd:
    enabled: yes
    state: started
    name: tomcat9_dev
…但这不起任何作用,它在启动服务器时总是超时,虽然停止服务器时不会超时,但实际上也不会停止…我已经在服务器启动并运行的情况下单独运行了好几次。/some/path/tomcat9_dev/bin/tomcat9_dev.service文件如下所示:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/some/path/tomcat9_dev/temp/tomcat.pid
Environment=CATALINA_HOME=/some/path/tomcat9_dev
Environment=CATALINA_BASE=/some/path/tomcat9_dev
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/some/path/tomcat9_dev/bin/tomcat9_dev start
ExecStop=/some/path/tomcat9_dev/bin/tomcat9_dev stop

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
我不完全确定通过脚本启动Tomcat是否会干扰Ansible和服务模块


您是否能够直接运行服务包装器或systemctl,在您试图使用Ansible命令/控制的系统上手动启动和停止该服务单元?因为这是第一步

什么是/some/path/tomcat9_dev/bin/tomcat9_dev.service?因为这对于systemd来说很重要,在安装单元文件之后,您是否重新加载了守护进程


另外,驻留在/some/path/tomcat9_dev/bin/tomcat9_dev的脚本是否让tomcat在前台或后台运行?再说一遍,因为这对systemd很重要。

这些都是对我很好的指点!我不知道从哪里开始…谢谢!因此,我无法运行该服务,它要求我输入一些密码,以便管理系统服务或单元;这更可能是Ansible超时的原因/some/path/tomcat9_dev/bin/tomcat9_dev.service是您在/etc/systemd/system/tomcat9_dev.service中找到的内容的精确副本,是的,它已安装并重新加载。我不完全确定前景/背景部分;它的执行方式是:/some/path/tomcat9\u dev/bin/tomcat9\u dev\u catalina.sh start&>/dev/null