ruby - Puppet 等待服务准备就绪

标签 ruby tomcat puppet

我正在使用 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/

相关文章:

mysql - 按到期日期对赠款进行排序

rest - 托管在 GAE 上的应用程序能否访问我电脑上的本地 tomcat

tomcat - 访问负载平衡 tomcat 后面的特定服务器

puppet - 如何使用 Puppet 参数化类来强制应用资源的顺序?

linux - 运行 puppet 证书列表不显示我正在寻找的证书

ruby - 配置 i18n-tasks 丢失

ruby-on-rails - rails : How to use a before_filter to protect multiple methods

ruby - 使用 template.erb 创建文件

mysql - Grails 和 MySQL 连接异常

linux - puppet 覆盖模块上的文件资源