阻断HTTPS出站后Azure虚拟机上的Artifactory Pro(试用版)无法启动
问题描述
在Azure虚拟机上安装Artifactory Pro试用版,为测试无网络环境运行,创建NSG出站规则全阻断HTTPS访问,重启后Artifactory无法加载,日志报错如下:
2023-01-04T11:27:40.641Z [jfrou] [WARN ] [0e5f4bf9d6dc7f57] [local_topology.go:274 ] [main ] [] - Readiness test failed with the following error: "required node services are missing or unhealthy"
2023-01-04T11:27:41.087Z 35[jfob ] [INFO ] [44efcd4b59cba041] [artifactory_client.go:159 ] [main ] [] - Fetching Artifactory version [artifactory_client]
2023-01-04T11:27:41.092Z 35[jfob ] [INFO ] [44efcd4b59cba041] [artifactory_client.go:176 ] [main ] [] - Got HTTP 503 from Artifactory [artifactory_client]
2023-01-04T11:27:41.092Z 35[jfob ] [INFO ] [44efcd4b59cba041] [artifactory_client.go:183 ] [main ] [] - Fetch base URL from Artifactory returned: 503 <!--
~ Artifactory is a binaries repository manager.
原因分析
Artifactory启动及运行时,即使仅使用Maven仓库,核心组件间的通信依赖本地HTTPS调用(如jfrou与Artifactory服务的交互),全量阻断HTTPS出站会导致内部服务无法完成健康检查,触发503错误。此外,试用版可能存在许可证验证环节,无网络时需配置离线模式规避。
解决步骤
- 调整NSG出站规则,放行内部通信:
- 允许虚拟机回环地址(127.0.0.1/32)的HTTPS(443端口)流量
- 允许虚拟机本地私有IP的HTTPS流量(单节点场景下确保内部组件通信)
- 配置Artifactory离线模式:
- 编辑Artifactory配置文件
$JFROG_HOME/artifactory/etc/system.yaml - 添加或修改配置项:
offlineMode: true - 保存文件后重启Artifactory服务:
systemctl restart artifactory(systemd环境)
- 编辑Artifactory配置文件
- 验证服务状态:
- 执行
systemctl status artifactory查看服务运行状态 - 查看详细日志
$JFROG_HOME/artifactory/logs/artifactory-service.log,确认核心服务是否恢复正常
- 执行
- 处理许可证问题:
如果是试用版许可证验证导致的问题,可申请离线试用许可证替换在线许可证,确保无网络环境下正常激活
内容的提问来源于stack exchange,提问作者V.Tatischev

