我已将https://packages.cloud.google.com/yum配置为Artifactory中的远程仓库。
我在Centos 7.3上的repo文件如下所示:
[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.
我很确定问题是网址中的相对路径:kubernetes-el7-x86_64/../../pool
如果我忘记了URL,它工作正常,因为wget在发送HTTP请求之前解析了相对路径,但yum没有这样做,当你给它一个带有../
的URL时,Artifactory返回500 。有谁知道如何在Artifactory中启用相对URL?或者如何在发送请求之前让yum解析URL?
我正在运行这些版本:
更新:这是来自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 :(得分:7)
应在Artifactory中使用以下URL设置远程存储库 https://packages.cloud.google.com/yum/
yum客户端上的baseurl应该指向repodata文件夹,其中包含以下内容: baseURL时= http://artifactory.company.com/artifactory/yum-remote/repos/kubernetes-el7-x86_64/ (远程存储库的名称是'yum remote')
无需Artifactory方面的任何进一步配置即可使用。
您提到的错误在相对路径'kubernetes-el7-x86_64 /../../ pool'中发生在工件缓存期间。 Artifactory无法缓存到包含“..”模式的路径,因此请求失败。 它可以通过用户插件从Artifactory端解决。 如果路径包含'..'模式,那么插件将修改工件将缓存的路径,因此它不会包含此模式。 现在这是多余的,因为注册表检索其中不包含“..”的路径。