Caching Yum-repo缓存

Caching Yum-repo缓存,caching,rpm,yum,nexus3,Caching,Rpm,Yum,Nexus3,我想确认一个rpm是可以从Nexus3上传后 当rpm上传到Nexus 3时,查看日志会发生以下事件: Scheduling rebuild of yum metadata to start in 60 seconds Rebuilding yum metadata for repository rpm ... Finished rebuilding yum metadata for repository rpm 这需要一段时间。在我的CI管道中,我希望定期检查,直到可以安装工件为止 管道构建

我想确认一个rpm是可以从Nexus3上传后

当rpm上传到Nexus 3时,查看日志会发生以下事件:

Scheduling rebuild of yum metadata to start in 60 seconds
Rebuilding yum metadata for repository rpm
...
Finished rebuilding yum metadata for repository rpm
这需要一段时间。在我的CI管道中,我希望定期检查,直到可以安装工件为止

管道构建rpm,将其上传到Nexus3,然后每10秒检查rpm是否可用。为了检查rpm的可用性,我正在执行以下命令:

yum clean all && yum --disablerepo="*" --enablerepo="the-repo-I-care-about" list  --showduplicates | grep <name_of_artifcat> | grep <expected_version>
/etc/yum.repos.d/repo-i-care-about.repo包含:

cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
distroverpkg=centos-release
http_caching=none
[repo-i-care-about]
name=Repo I care about
enabled=1
gpgcheck=0
baseurl=https://somewhere.com
metadata_expire=5
mirrorlist_expire=5
http_caching=none
我遇到的问题是列表响应似乎返回了过时的信息

元数据重建大约需要70秒,初始配置需要60秒,我最终会调整它,我每10秒检查一次:来自yum repo的响应看起来缓存在某个地方,如果我尝试在另一个具有相同回购设置的盒子上执行相同的搜索,则会得到预期的人工制品版本

事实上,在另一台机器上,我在给定特定列表命令的第一次尝试中得到了预期的结果,而且我每10秒检查一次的机器似乎在几分钟后也没有收到预期的结果,因为人工制品在不同的框中可用,这让我认为响应得到了缓存

我希望避免在发出第一个list请求之前等待90秒左右,以确保在我第一次执行list命令时,人工制品很可能已经准备好,并且我不会缓存结果,特别是因为元数据调度的初始延迟可能会从60秒更改为较低的值

由于我将http_caching=none添加到yum.conf和repo定义中,该检查的脆弱性得到了改善。但这仍然没有使问题可靠地消失

为了从list命令中获得更可靠的结果,我应该配置缓存的其他设置吗?现在,我真的不在乎list命令需要多长时间,只要它不包含过时的信息。

看起来删除/var/cache/yum/*文件夹会使检查更加可靠。尽管如此,我还是感觉缺少了一些设置,无法以更整洁的方式实现我所需的功能。

元数据\u expire会在缓存过期前5秒通知它,这应该足够快。它是不是说每次都在抓人?如果不是,则可能是服务器本身缓存页面/请求。中间有代理吗?