Azure DevOps中SonarQube连接失败:API请求报错ENOTFOUND
问题场景与报错
我尝试通过Azure DevOps流水线连接处于不同VNet的SonarQube,我的VM代理池与SonarQube在同一VNet中,但出现以下报错:
##[error][SQ] API GET '/api/server/version' failed, error is request to https://abc failed, reason: getaddrinfo ENOTFOUND abc abc:443
排查解决方法
- 验证域名解析能力:报错核心是代理池VM无法解析SonarQube的域名
abc。登录代理池VM,执行nslookup abc或ping abc,确认是否能解析到SonarQube的私有IP。若解析失败,需在当前VNet配置私有DNS区域,将abc域名映射到SonarQube的私有IP地址。 - 检查网络连通性规则:
- 确认SonarQube所在VNet的网络安全组(NSG)已开放代理池子网到SonarQube 443端口的入站流量。
- 检查SonarQube主机的本地防火墙,是否允许来自代理池VM的HTTPS请求。
- 核对流水线服务连接配置:
- 确保流水线中SonarQube服务连接的地址是正确的私有域名或私有IP,而非仅公网可访问的地址。
- 确认服务连接的认证Token有效,避免后续解析问题解决后出现认证报错。
- 直接模拟请求测试:在代理池VM上执行
curl https://abc/api/server/version,模拟流水线的API请求,查看是否能正常获取响应,进一步定位问题节点。
内容的提问来源于stack exchange,提问作者Akshay Durgade
相关产品推荐
相关产品推荐

