我正在尝试创建一个安装了tomcat的人偶模块。我完成了所有其他工作,该模块下载了Tomcat tar,将其解压缩,删除了软件包并从模板更改了设置文件。我唯一的问题是不会自动启动tomcat。如何将其设置为执行“ sudo sh startup.sh”?
我尝试使用命令=>“ sudo sh startup.sh”,但是我认为问题是它不能使用sudo。有没有一种方法可以绕过该方法或其他解决方案来启动tomcat?
我建议您安装服务脚本,而不是声明执行文件以启动应用程序服务器。 这样,您可以依赖service资源类型的功能,该功能将帮助您检查服务的状态并确保它是预期的。 您可以在此处找到一个示例脚本,该脚本可以放在templates/模块目录中。tomcat.erb
service
templates/
tomcat.erb
基本上,你会做什么,然后是声明file,exec,service资源三重如下(例如基于红帽的操作系统,类似的适用于Debian / Ubuntu的除了chkconfig部分):
file
exec
chkconfig
file { '/etc/init.d/tomcat': ensure => present, content => template('tomcat/tomcat.erb'), mode => 'u=rwx,og=rw', user => 'root', group => 'root', notify => Exec['add_tomcat_service'], } exec {'add_tomcat_service': command => '/sbin/chkconfig --add tomcat', path => ['/bin', '/sbin', '/usr/bin', '/usr/sbin'], onlyif => "test `/sbin/chkconfig --list | /bin/grep tomcat | /usr/bin/wc -l` -eq 0", before => Service['tomcat'], } service { 'tomcat': ensure => started, hasstatus => true, hasrestart => true, }