jellyfishco/jf_agent一个可在本地部署的代理,用于下载并发送数据至Jellyfish。
参见文档此处
部分组织会通过组织范围的证书颁发机构(CA)生成自己的证书。如果jf_agent连接的系统的证书链不包含代理已知的证书,代理将终止并显示类似以下错误:
text[2101] Failed to connect to bitbucket_server: HTTPSConnectionPool(host='bitbucket.example.com', port=443): Max retries exceeded with url: /rest/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)')))
解决方法如下:
从<[***]>下载最新的证书 bundle,例如2021.10.08标签下的certifi/cacert.pem。(certifi是requests的依赖项,其cacert.pem bundle可在容器内找到)
获取服务器使用的完整证书链,格式为Base-64编码的X.509(PEM)。
将第二步获取的证书追加到第一步获取的cacert.pem文件中。
最后一步是将更新后的cacert.pem bundle挂载到代理可访问的路径,并设置REQUESTS_CA_BUNDLE环境变量指向该路径。例如,以下Bash脚本展示了如何调用docker run(注意我们将本地cacert.pem文件挂载到容器内的路径,并在容器中设置REQUESTS_CA_BUNDLE环境变量指向该路径):
bashHERE=$(pwd) PATH_TO_BUNDLE=/home/jf_agent/cacert.pem OUTPUT_FOLDER=${HERE}/jf_agent_output mkdir --parents ${OUTPUT_FOLDER} docker run -it --rm \ --mount type=bind,source=${HERE}/my_config.yml,target=/home/jf_agent/config.yml \ --mount type=bind,source=${OUTPUT_FOLDER},target=/home/jf_agent/output \ --mount type=bind,source=${HERE}/cacert.pem,target=${PATH_TO_BUNDLE} \ --env REQUESTS_CA_BUNDLE=${PATH_TO_BUNDLE} \ --env-file ./creds.env \ jellyfishco/jf_agent:stable \ $@
初始设置
bashpdm install --dev pdm run pre-commit install
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务