我们需要在Linux机器上启动JFrog工具服务,并给出如下所述的某些条件。
我们有JFrog Artifactory和JFrog Xray托管在不同的服务器上。这两个应用程序都在PostgreSQL数据库服务器中托管数据库。
我们需要确保在两个JFrog应用程序启动之前,数据库服务器已经启动并且可以访问。操作的顺序需要是数据库服务器联机并可访问,然后需要启动Artifactory服务,一旦Artifactory启动,我们需要启动Xray服务。
我们尝试使用shell脚本沿着Azure DevOps管道,但由于无法启动JFrog生产服务器而受阻。Azure DevOps代理无法正确检查服务的状态并运行必要的启动脚本。
我们在组织中使用Ansible Tower。问题是,这是Ansible playbooks可以很好地处理的事情,还是我们应该考虑其他方法?
2条答案
按热度按时间gfttwv5a1#
开始我们的...托管的服务...在某些条件下 *
是的,当然,这可以简单地通过
wait_for
module – Waits for a condition before continuing连接PostgreSQL数据库备份,使用uri
module – Interacts with webservices到wait_for_http
连接JFrog Artifactory REST API举个例子
建议查看
wait_for_http
的所有示例,并定义JFrog Artifactory REST API的哪个状态,端点和结果被认为是GOOD/STARTED/UP。因此,在示例中,可以使用端点system/ping
,它只返回OK
作为How to use Artifactory Health Check。mrwjdhj32#
你看过https://jfrog.com/help/r/jfrog-installation-setup-documentation/enable-postgresql-connectivity-from-remote-servers的文档了吗?
如果您使用脚本路由,您可以使用类似
pg_isready -h someremotehost
的东西来确定数据库服务器的状态(更多信息请参见https://www.postgresql.org/docs/current/app-pg-isready.html)。要确定伪影何时出现,可以 curl 端点(更多信息请参见https://jfrog.com/knowledge-base/artifactory-how-to-use-artifactory-health-check/)。
下面是提供的示例之一:
在这个线程Docker wait for postgresql to be running中有一些可能有用的提示