7

最近,我把詹金斯转向了 https。这是我使用 jenkinsapi 的代码:

import jenkinsapi
from jenkinsapi.jenkins import Jenkins
from jenkinsapi.utils.requester import Requester
import requests
url = 'https://jenkinsd:443'
username = 'MyUser'
password = '123'
requests.packages.urllib3.disable_warnings()
jenkins = Jenkins(url, username, password)
jobs = jenkins.get_jobs()
for jobName in jobs:
    print(jobName)

我收到此错误:

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

我试过了:

jenkins = Jenkins(url, requester=Requester(username, password, baseurl=url, ssl_verify=False))

或者:

jenkins = jenkinsapi.jenkins.Jenkins(url, username, password, requester =Requester(username, password, ssl_verify=False))

我收到此错误:

File "D:\Python34\lib\site-packages\requests-2.7.0-py3.4.egg\requests\adapters.py", line 415, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionRefusedError(10061, 'No connection could be made because the target machine actively refused it', None, 10061, None))

请指教:)

4

2 回答 2

11

解决了..

jenkins = Jenkins(url, 用户名, 密码, ssl_verify=False)

更正 url 后:管理 Jenkins > 配置系统 > Jenkins URL

jenkinsapi 现在可以工作了。

https://github.com/pycontribs/jenkinsapi/blob/master/doc/source/ssl_certificate_verification

谢谢!

于 2017-01-17T16:01:23.263 回答
-1

似乎作者包含了一个环境变量来禁用 SSL 验证。这种方法还具有抑制 urllib3 将打印的不安全请求警告的好处。在执行 python 脚本之前,只需在 shell 中设置以下变量。

在 Bash 中:

export PYTHONHTTPSVERIFY=0
python myscript.py
于 2021-07-06T16:37:36.430 回答