【发布时间】:2020-02-06 03:55:14
【问题描述】:
我尝试使用 k8s 模块运行一些 ansible 任务。在本地这很完美,但在我的 Jenkins 实例上,它失败并显示以下错误消息:
...
MaxRetryError(_pool, url, error or ResponseError(原因))\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='xxxxxxxxxxxxxx', 端口 = 443):最大重试次数超过 url:/版本(由 NewConnectionError(': 建立新连接失败:[Errno -2] 名称或服务未知',))\n", "module_stdout": "", "msg": "MODULE FAILURE\n查看 stdout/stderr 了解确切的错误", "rc": 1 }
我很确定这是因为 Jenkins 需要代理才能与外界通信。我已经看到如何设置 ansible 以使用代理,但这似乎不适用于 k8s 模块。有任何想法吗?到目前为止,这是我尝试过的:
- hosts: ansible_server
connection: local
gather_facts: no
environment:
https_proxy: "xxx"
http_proxy: "xxx"
tasks:
- name: Gather facts to check connectivity
k8s_facts:
api_key: "{{api_key}}"
host: "{{cluster_url}}"
kind: Project
register: listed_projects
PS:我添加了 -vvv 标志,可以看到它试图以某种方式使用代理:
EXEC /bin/sh -c '/usr/bin/python && sleep 0' 使用模块 文件 /usr/lib/python2.7/site-packages/ansible/modules/clustering/k8s/k8s_facts.py 将 /root/.ansible/tmp/ansible-local-1fHx5f6/tmpDUhlNa 放到 /root/.ansible/tmp/ansible-tmp-1570565569.96-190678136757098/AnsiballZ_k8s_facts.py 执行 /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1570565569.96-190678136757098/ /root/.ansible/tmp/ansible-tmp-1570565569.96-190678136757098/AnsiballZ_k8s_facts.py && 睡眠 0' 执行 /bin/sh -c 'https_proxy=xxx http_proxy=xxx /usr/bin/python /root/.ansible/tmp/ansible-tmp-1570565569.96-190678136757098/AnsiballZ_k8s_facts.py && sleep 0' 执行 /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1570565569.96-190678136757098/ > /dev/null 2>&1 && 睡眠 0'
【问题讨论】:
-
我会关注
Name or service not known错误。似乎有些涉及的主机无法解析提到的主机?
标签: bash kubernetes proxy ansible