2017-07-03 83 views
0

我已将https://packages.cloud.google.com/yum配置为Artifactory中的远程回购。artifactory yum相对路径不起作用

在CentOS 7.3我的回购文件看起来像这样:

[kubernetes] 
    name=kubernetes 
    baseurl=https://artifactory.company.com/artifactory/packages.cloud.google.com-yum/repos/kubernetes-el7-x86_64/ 
    enabled=1 
    gpgcheck=1 

当我运行yum install -y kubelet它打印此错误:

e7a4403227dd24036f3b0615663a37 FAILED 
    https://artifactory.company.com/artifactory/packages.cloud.google.com-yum/repos/kubernetes-el7-x86_64/../../pool/e7a4403227dd24036f3b0615663a371c4e07a95be5fee53505e647fd8ae58aa6-kubernetes-cni-0.5.1-0.x86_64.rpm: [Errno 14] HTTPS Error 500 - Internal Server Error 
    Trying other mirror. 

我敢肯定问题出在URL中的相对路径:kubernetes-el7-x86_64/../../pool

如果我wget的URL工作正常,因为wget在发送HTTP请求之前解析出相对路径,但百胜没有d o当Artifactory给它一个带有../的网址时,它会返回500。有谁知道如何在Artifactory中启用相对URL?或者如何让yum在发送请求之前解析URL?

我运行这些版本:

  • Artifactory的5.2.0
  • 百胜3.4.3-150

更新:这是artifactory的HTTP响应体:

{ 
     "errors" : [ { 
     "status" : 500, 
     "message" : "Could not process download request: Path element cannot end with a dot: packages.cloud.google.com-yum-cache/repos/kubernetes-el7-x86_64/../" 
     } ] 
    } 
+0

外部那个url返回一个404 - 它只能从gcloud中访问吗? – user3788685

+0

https://artifactory.company.com是一个经过审查的网址。该服务器仅在我公司的网络中可用。 – user3508370

回答

7

远程存储库应在Artifactory中设置以下URL https://packages.cloud.google.com/yum/

的荫客户端上的baseURL时应当在repodata夹点与下列: baseURL时= http://artifactory.company.com/artifactory/yum-remote/repos/kubernetes-el7-x86_64/ (远程存储库的名称是“荫远程”)

这应该没有任何进一步的工作来自Artifactory的配置。

您在相关路径'kubernetes-el7-x86_64 /../../ pool'中提到的错误发生在工件的缓存过程中。 Artifactory无法缓存到包含'..'模式的路径,因此请求失败。 它可以从Artifactory一方用用户插件解决。 如果路径包含'..'模式,那么插件将修改工件将缓存的路径,所以它将不包含此模式。 现在这是多余的,因为注册表检索其中不包含“..”的路径。

+0

是否有一个现有的artifactory插件可以进行URL重写?是什么名字? – user3508370

+0

您可以在JIRA案例评论中找到一个示例用户插件: https://www.jfrog.com/jira/browse/RTFACT-9141 – Aviza