2023 年 3 月 28 日之后 http://yum.oracle.com/repo/OracleLinux/ 通过 API 和管理 UI 进行 Artifactory 远程测试失败

问题描述 投票:0回答:2

问题

我们似乎在远程 rpm/yum 存储库上有复制问题。我们将

http://yum.oracle.com/repo/OracleLinux/
复制为 rpm-oraclelinux-remote 直到
28-03-23 15:29:41 +00:00
它工作正常但现在它失败了它是 Artifactory
/ui/api/v1/ui/admin/repositories/testremote
存储库检查 404。此检查可以通过 XMLHttpRequest 运行或直接从 Artifactory Admin UI 运行

当我查看同步或传递的 yum 存储库时,我看到 repomd.xml 的以下内容

  • 创建时间:09-06-22 20:07:12 +00:00
  • 最后修改时间:30-03-23 13:24:26 +00:00
  • 最后下载:30-03-23 18:40:43 +00:00

当我查看 oraclelinux 时,我看到了

  • 创建时间:30-03-23 18:37:16 +00:00
  • 最后修改时间:28-03-23 15:29:41 +00:00
  • 最后下载:30-03-23 18:37:16 +00:00

我也做了一些测试,看起来我们确实有 Artifactory 缓存的内容,但无法提取其他内容。

所以,任何人都知道 Oracle 是否改变了他们的回购政策http://yum.oracle.com/

我的猜测是我需要为每个 OL* 版本创建一个远程仓库,如

artifactory rpm yum oraclelinux
2个回答
1
投票

Oracle 似乎已经改变了他们的 repo 的权限,使它们类似于 RHEL 处理他们的方式。

不再支持顶级 repo 复制,复制必须在树的下方进行

http://yum.oracle.com/repo/OracleLinux/OL7/latest http://yum.oracle.com/repo/OracleLinux/OL8/latest 等等

这意味着 Artifactory 中的 rpm-oraclelinux-ol7-remote、rpm-oraclelinux-ol8-remote 存储库定义,然后可能是一个虚拟存储库将它们组合在一起,允许对组进行查询。还不确定最后一点。当我得到那个答案时,我会编辑它。


0
投票

[注:我在 Oracle Linux 开发组,与 ULN/yum 团队一起工作。]

我们实际上从不支持通过 HTTP(S) 同步顶级 URL(不指向单个存储库)作为用例,因为历史上我们在尝试使用“目录列表”保留这些存根 HTML 文件时遇到过问题工作。

yum.oracle.com 托管在 Akamai CDN 上(如果您查找其 DNS,就会看到这一点),而 Akamai 实际上并没有这样的目录树概念。那些存根 HTML 文件甚至不存在于所有镜像中,所以你基本上只是幸运,它能工作到这一点。

您还会注意到,各个回购的每个“目录列表”HTML 文件实际上都将

/getPackage/
伪子目录注入到 RPM 的 URL 中;这是为了处理 Akamai 如何分发这些文件。

因此,通过 HTTP,我们一次只支持镜像一个 repo,最好是通过 yum/dnf/reposync 使用的

repodata/repomd.xml
文件。如果 Artifactory 支持一次镜像一个 repo,那你就必须通过 HTTP 来做。

现在,如果您已经有了一个镜像树并且 Artifactory 出错了,因为 upper level 目录是 404'ing,即使

repomd.xml
仍然可以访问(按原样),这听起来像是一个可报告的 Artifactory 错误我。仅仅因为一个目录级别返回 404 并不意味着它下面的所有内容都会;这不是 URI 的工作方式 :)

总而言之,

rsync
现在也有官方支持的批量同步操作。本文档中描述了该方法和其他官方镜像方法:

https://docs.oracle.com/en/operating-systems/oracle-linux/software-management/sfw-mgmt-UseSoftwareDistributionMirrors.html

© www.soinside.com 2019 - 2024. All rights reserved.