我正在使用 Puppet 进行机器配置。我有一个服务在 Tomcat 6 应用程序服务器中运行,另一个 list 依赖于该服务(发送一些 REST 请求作为安装的一部分)。问题是,在开始使用 tomcat 后,该服务不可用:
service {"tomcat6":
ensure => running, enable => true, hasstatus => true, hasrestart => true;
}
所以我需要另一个 list 的一些要求条件,以确保服务真正运行(例如检查某些 URL 是否可用)。如果它还没有准备好,请等待一段时间,然后再试一次,并限制重试次数。
是否有一些惯用的 Puppet 解决方案或其他解决方案可以实现这一目标?
注意 - sleep 不是解决方案。
最佳答案
感谢 lzap 和 Puppet irc channel 的人们,这里有一个解决方案:
exec {"wait for tomcat":
require => Service["tomcat6"],
command => "/usr/bin/wget --spider --tries 10 --retry-connrefused --no-check-certificate https://localhost:8443/service/",
}
当在依赖 list 中使用 require => Exec["wait for tomcat"] 时,它不会运行,直到服务真正准备好。
关于ruby - Puppet 等待服务准备就绪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8244663/