等待Jenkins-API可用的最佳方法

时间:2019-09-04 06:21:11

标签: ansible

我写了一个小Ansible剧本,将Jenkins的docker-compose文件复制到启动Jenkins服务器。容器启动后,我想使用相同的剧本(以不同的角色)安装一些插件。

这就是为什么我一直在寻找等待该API可用的最佳方法,因为Jenkins的启动与该API的可用性之间似乎存在延迟。

我环顾四周,大多数人使用这样的东西:

- uri:
    url: "http://localhost:8080"
    status_code: 200
    timeout: 5
  register: result
  until: result.status == 200
  retries: 60
  delay: 5

即使使用了它,似乎也有延迟。这就是为什么在服务可访问后我会暂停一下,如下所示:

- pause
    minutes: 3

这可行,但我认为这不是很优雅。

此刻我的整个角色是这样的:

- uri:
    url: "http://localhost:8080"
    status_code: 200
    timeout: 5
  register: result
  until: result.status == 200
  retries: 60
  delay: 5

- jenkins_plugin:
    name: "workflow-aggregator"
    timeout: 180
    url: "http://localhost:8080"

- uri:
    url: http://localhost:8080/safeRestart
    method: POST
    status_code: 302

我认为问题在于我无法使用wait_for_connection,因为该服务已启动,并且我在文档中找不到任何端点来检查Jenkins是否已完全启动并运行。

也许有人遇到相同的问题,可以给我一些提示,告诉我如何改善支票。

0 个答案:

没有答案