Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux sh startup.sh使用puppet模块启动tomcat_Linux_Tomcat_Puppet - Fatal编程技术网

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

Linux sh startup.sh使用puppet模块启动tomcat,linux,tomcat,puppet,Linux,Tomcat,Puppet,我正在尝试创建一个安装tomcat的puppet模块。我让其他一切正常工作,模块下载tomcat tar,提取它,删除包,并从模板更改设置文件。我唯一的问题是它不会自动启动tomcat。如何设置为“sudo sh startup.sh” 我尝试使用command=>“sudoshstartup.sh”,但我认为问题在于它不能使用sudo。有没有办法绕过该解决方案或其他解决方案来启动tomcat?我建议您安装一个服务脚本,而不是声明一个exec来启动应用程序服务器。 通过这种方式,您可以依赖服务资

我正在尝试创建一个安装tomcat的puppet模块。我让其他一切正常工作,模块下载tomcat tar,提取它,删除包,并从模板更改设置文件。我唯一的问题是它不会自动启动tomcat。如何设置为“sudo sh startup.sh”


我尝试使用command=>“sudoshstartup.sh”,但我认为问题在于它不能使用sudo。有没有办法绕过该解决方案或其他解决方案来启动tomcat?

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

基本上,您接下来要做的是声明一个
文件
执行
服务
资源三元组,如下所示(基于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,
}