Sh startup.sh使用puppet模块启动tomcat



我正在尝试创建一个安装tomcat的傀儡模块。当一切正常工作时,模块下载tomcat tar,提取它,删除包并从模板更改设置文件。唯一的问题是它不能自动启动tomcat。如何设置为"sudo sh startup.sh"?

我尝试用命令=> "sudo sh startup.sh",但我认为问题是它不能使用sudo。有没有办法绕过这个或其他解决方案来启动tomcat ?

我建议您安装一个服务脚本,而不是声明一个exec来启动应用服务器。
通过这种方式,您可以依赖service资源类型的功能,它负责检查服务的状态并确保它是预期的。
您可以在这里找到一个示例脚本,它可以作为tomcat.erb放在模块的templates/目录中。

基本上,你要做的就是声明一个file, exec, service资源三元组,如下所示(例如基于RedHat的操作系统,类似于Debian/Ubuntu,除了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,
}

最新更新