![Ansible playbook 从特定存储库获取补丁](https://linux22.com/image/176294/Ansible%20playbook%20%E4%BB%8E%E7%89%B9%E5%AE%9A%E5%AD%98%E5%82%A8%E5%BA%93%E8%8E%B7%E5%8F%96%E8%A1%A5%E4%B8%81.png)
我有一个在云环境中运行的实例,该实例启用了多个存储库,我如何仅修补特定的存储库,yum 不应从非操作系统存储库更新任何包。
示例 - yum repolist repo1 - 源操作系统提供商 repo2 - 源操作系统提供商 repo3 - 源第三方应用程序
剧本:
yum:
name: *
state: latest
如何限制 yum 不更新第三方存储库中的任何软件包。
- 我不想移动第三方存储库配置文件,也不想禁用它们。
任何建议都会非常有帮助。
答案1
您需要告诉yum
所有软件包不要更新。下面是一个排除所有 git、bash、php 包更新的示例。
- hosts: webservers
tasks:
- name: Exclude some packages from upgrade in Ansible.
yum:
name: "*"
state: latest
exclude:
- git*
- bash*
- php*
恕我直言,禁用和启用您想要更新库存的每个任务的存储库,比将所有存储库包写入排除列表的工作量要少。
以供参考enabled
并exclude
参阅文档。
https://docs.ansible.com/ansible/2.3/yum_repository_module.html
答案2
这是一个不寻常的任务,yum 不支持。
创建您自己的本地存储库,请参阅手册页重新同步
并yum update
在他们身上奔跑,
或运行yum check-update
然后yum list available
结果的第三列是存储库,grep
仅安装您想要的软件包。
Available Packages
2048-cli.x86_64 0.9.1-1.el6 epel
仅供参考:移动第三方存储库配置文件与禁用存储库不同。
禁用仅enabled=0
在存储库文件中设置,并且仍会显示yum repolist disabled
.禁用、更新、启用是最简单、最常用的方法,可以达到您想要的相同结果。