Python-Jenkins隧道连接失败:403禁止访问

cetgtptt  于 2022-12-03  发布在  Jenkins
关注(0)|答案(2)|浏览(332)

我一直在使用Python Jenkins API来管理我的Jenkins作业。它已经工作了很长一段时间,但是突然停止工作了。下面是代码摘录:

import jenkins

server = jenkins.Jenkins('https://jenkins.company.com', username='xxxx', password='password')
server._session.verify = False
print(server.jobs_count())

回溯:
文件“",第1行,位于server.jobs_count()中
文件“E:\anaconda 3\Lib\site-packages\jenkins_init.py”,第1160行,在作业计数中返回长度(self.get_all_jobs())
文件“E:\anaconda 3\Lib\site-packages\jenkins
init.py”,第1020行,在get_all_jobs = [(0,[],self.get_info(query=jobs_query)['jobs'])]中,获取所有作业的信息。
文件“E:\anaconda 3\Lib\site-packages\jenkins
init.py”,第769行,在获取信息请求中。
文件“E:\anaconda 3\Lib\site-packages\jenkins
init.py”,第557行,在jenkins_open中返回自我。jenkins_request(req,add_crumb,resolve_auth).text
文件“E:\anaconda 3\Lib\站点包\jenkins
init.py”,第573行,在jenkins_request self.maybe_add_crumb(req)中
文件“E:\anaconda 3\Lib\site-packages\jenkins
init.py”,第371行,在maybe_add_crumb 'GET'中,自定义.build_url(CRUMB_URL),add_crumb=假)
文件“E:\anaconda 3\Lib\site-packages\jenkins
init
.py”,第557行,在jenkins_open中返回自我。jenkins_request(req,add_crumb,resolve_auth).text
文件“E:\anaconda 3\Lib\site-packages\jenkins_init.py”,第576行,在jenkins_request self.request(req)中)
文件“E:\anaconda 3\Lib\site-packages\jenkins
init
.py”,第550行,在_request中返回自己。_session.send(r,**_settings)
文件“E:\anaconda 3\Lib\site-packages\requests\sessions.py”,第622行,在发送r =适配器中。发送(请求,**kwargs)
文件“E:\anaconda 3\Lib\site-packages\requests\adapters.py”,第507行,在发送时引发代理错误(e,请求=请求)
代理错误:HTTP连接池(主机=“jenkins.com,”端口=443):URL超过最大重试次数:/job/scp/job/sm/job/9218/job/4198/job/SIT/crumbIssuer/api/json(由代理错误(“无法连接到代理”),OSError(“隧道连接失败:403禁止')))
请注意,Jenkins服务器上没有任何代理,我可以使用用户/密码登录到Jenkins服务器,没有任何问题。
我有crum id和API标记,但是我没有找到任何指示如何将crum添加到Python-Jenkins API中的内容。

wsewodh2

wsewodh21#

tl;dr:您缺少连接。
jenkins库依赖于import requestsimport requests报告了连接错误。遗憾的是,它在诊断中使用了ProxyError。基本原理如下:

  • 我们正在为应用程序发出GET请求。
  • 可选地,如果正在使用代理,则“从服务器S获取”将被转换为“从代理P获取”。
  • 最后,我们尝试联系某个主机S或P。不妨告诉代理用户S的状态未知,但P的状态为“down”。

这里结束了“为什么提到代理?”诊断咆哮。
当你说“我没有使用代理”时,我相信你。对于那些还不熟悉它的人来说,这个诊断可能有点离题太远。
当我ebs.usps.gov在端口443、80或ICMP上探测www.example.com(56.207.107.97)时,我没有看到任何响应数据包。你在网络的不同部分,你和服务器之间有不同的过滤器,所以你的里程可能会有所不同。我不会把那个主机描述为“公共服务器”,因为它没有给我任何响应。
看起来您向tcp端口443发送了SYN,但某个网络设备丢弃了该数据包,或者服务器使用SYN-ACK进行了回复,该回复数据包被丢弃。
很可能是服务器已关闭或您的请求已被放弃。

zrfyljdw

zrfyljdw2#

回溯的最后一部分是:

ProxyError: HTTPSConnectionPool(host='ebs.usps.gov', port=443)

这很可能表示您的Python代码在运行时从某处继承了代理设置。它可能是环境变量((HTTP| HTTPS)_PROXY)在POSIX之类的平台或类似的平台上...如果你需要使用代理来访问Jenkins示例,那么问题就出在代理本身。它会因为某些原因阻止你的访问。如果你不需要使用代理,那么你应该在运行Python代码时删除影响代码的设置。
还有,看看J_H说了什么......

相关问题