Puppet forge tomcat模块-作为系统服务启动

Puppet forge tomcat模块-作为系统服务启动,tomcat,puppet,systemd,forge,systemctl,Tomcat,Puppet,Systemd,Forge,Systemctl,我已经安装并配置了puppet forge模块puppetlabs tomcat 8,OK 我让它配置数据库连接、自定义域和部署war文件。它可以工作,如果Tomcat还没有运行,Puppet就会启动它 我想改变现状,让Puppet将Tomcat作为一个系统服务运行 让Puppet使用epp模板在/etc/systemd/system中创建systemd服务文件很容易。完成此操作后,systemd的用于启动、停止和状态的systemctl命令可以完美地工作 我一直关注的问题是让puppetlab

我已经安装并配置了puppet forge模块puppetlabs tomcat 8,OK

我让它配置数据库连接、自定义域和部署war文件。它可以工作,如果Tomcat还没有运行,Puppet就会启动它

我想改变现状,让Puppet将Tomcat作为一个系统服务运行

让Puppet使用epp模板在/etc/systemd/system中创建systemd服务文件很容易。完成此操作后,systemd的用于启动、停止和状态的systemctl命令可以完美地工作

我一直关注的问题是让puppetlabs tomcat的服务定义将tomcat作为systemd服务启动。看起来应该很容易,因为tomcat::service有参数来定义启动和停止命令

tomcat::service { 'myWebApp':
  catalina_home  => $catalinaHome,
  catalina_base  => $catalinaBase,
  start_command  => "systemctl start ${systemdServiceName}",
  stop_command   => "systemctl stop ${systemdServiceName}",
}
遗憾的是,这两个参数没有达到预期效果

我在systemd服务文件中定义的服务包括以下短语:

Environment=CATALINA_PID=<%= $catalinaBase %>/temp/tomcat.pid
Environment=CATALINA\u PID=/temp/tomcat.PID
这有意地指定了一个与我在puppetlabs Tomcat中默认设置启动Tomcat时看到的不同的.pid文件。这种差异使我能够确定我知道Tomcat是如何启动的


我想要的是Puppet通过systemd启动Tomcat,从而消除任何差异,这取决于Tomcat是由Puppet启动的还是直接通过systemd启动的。

您所说的“无效”到底是什么意思?类是否尝试以另一种方式启动服务,运行后是否有任何Tomcat进程处于活动状态,无论是来自Puppet还是其他进程?调试级日志可能很有用,它将显示正在运行的服务状态命令。你好,Dominic,Puppet是通过systemd以外的方式启动Tomcat的。我现在有了解决办法。我在这里问了几乎相同的问题:亨特·豪根想出了一个解决办法。这与我期望的完全不同,它没有指定start和stop命令,但它完美地调用了systemd start和stop。