【发布时间】:2021-01-17 05:04:20
【问题描述】:
我目前面临一个奇怪的问题,我无法猜测是什么原因造成的。
我编写了小型 Ansible 脚本来测试 Kafka 模式注册表和连接器是否通过调用其 API 来运行。
我可以在本地机器上成功运行这些 Ansible playbook。但是,当在 Gitlab CI 管道中运行它们时(我使用与 gitlab 运行器相同的本地计算机),connect_test 总是会因以下错误而中断:
fatal: [xx.xxx.x.x]: FAILED! => {"changed": false, "elapsed": 0, "msg": "Status code was -1 and not [200]: Request failed: <urlopen error [Errno 111] Connection refused>", "redirected": false, "status": -1, "url": "http://localhost:8083"}
奇怪的是,当我点击 CI 管道中的重试按钮时,这个失败的工作会起作用。
有人知道这个问题吗?非常感谢您的帮助。
schema_test.yml
---
- name: Test schema-registry
hosts: SCHEMA
become: yes
become_user: root
tasks:
- name: list schemas
uri:
url: http://localhost:8081/subjects
register: schema
- debug:
msg: "{{ schema }}"
connect_test.yml
---
- name: Test connect
hosts: CONNECT
become: yes
become_user: root
tasks:
- name: check connect
uri:
url: http://localhost:8083
register: connect
- debug:
msg: "{{ connect }}"
.gitlab-ci.yml
test-connect:
stage: test
script:
- ansible-playbook connect_test.yml
tags:
- gitlab-runner
test-schema:
stage: test
script:
- ansible-playbook schema_test.yml
tags:
- gitlab-runner
更新
我用 shell 替换了 URI 模块。结果,我看到了相同的行为。管道的初始运行将失败,重试作业将修复它
【问题讨论】:
-
您考虑过使用
until:andretries:任务关键字吗?
标签: ansible uri gitlab-ci gitlab-ci-runner