Caching Yum-repo缓存
我想确认一个rpm是可以从Nexus3上传后 当rpm上传到Nexus 3时,查看日志会发生以下事件: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管道中,我希望定期检查,直到可以安装工件为止 管道构建
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秒通知它,这应该足够快。它是不是说每次都在抓人?如果不是,则可能是服务器本身缓存页面/请求。中间有代理吗?