Puppet等待服务准备好

iNe*_*cas 7 ruby tomcat puppet

我正在使用Puppet进行机器配置.我有一个在Tomcat 6 app服务器上运行的服务,另一个清单依赖于该服务(在安装过程中发送一些REST请求).问题是,在使用以下命令启动tomcat后,该服务无法使用:

service {"tomcat6":
  ensure  => running, enable => true, hasstatus => true, hasrestart => true;
}
Run Code Online (Sandbox Code Playgroud)

所以我需要一些需要条件的另一个清单,以确保服务真正运行(例如检查一些URL是否可用).如果它还没有准备好等待一段时间再次尝试再次尝试重试的数量限制.

是否有一些惯用的Puppet解决方案或其他解决方案可以实现这一目标?

注意 - 睡眠不是解决方案.

iNe*_*cas 18

感谢lzap和Puppet irc频道的人们在这里是一个解决方案:

exec {"wait for tomcat":
  require => Service["tomcat6"],
  command => "/usr/bin/wget --spider --tries 10 --retry-connrefused --no-check-certificate https://localhost:8443/service/",
}
Run Code Online (Sandbox Code Playgroud)

在依赖清单中使用require => Exec ["wait for tomcat"]时,它将在服务真正准备好之前运行.