yum – Ansible:如果没有安装则更新选择包,如果没有安装

前端之家收集整理的这篇文章主要介绍了yum – Ansible:如果没有安装则更新选择包,如果没有安装前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有几十台主机,它们是CentOS 6和7的混合体.我最近开始使用Ansible来帮助管理它们,但我仍然是一个新手.

像每个人一样,我经常需要更新这些机器上的软件包,特别是出于安全考虑.但是,我不想更新它们上的所有软件包,只需更新特定的软件包 – 这些软件包可能因机器而异,具体取决于其角色.我使用了Ansible的yum命令,使用state = latest,以及特定软件包的列表,以便在过去更新这些主机,但直到今天我才注意到在针对主机运行时,如果未安装其中一个列出的软件包然后将在该机器上安装.

我需要的是一种向Ansible提供包列表的方法,然后对于每个主机它将采取行动:
– 如果包存在,请将其更新到最新版本;
– 如果包裹不存在,什么都不做.

有没有实用的方法呢?

如果您只想更新包含可用更新的软件包子集,您可能需要尝试@wurtel的尝试.您需要注册已安装的软件包,如下所示:
- name: Get installed packages.
  command: rpm -qa --qf "%{NAME}\n"
  register: installed_packages

然后,您可以定义集合theory filter并更新允许更新packages_to_update的程序包列表中定义的所有程序包.

- name: Update subset of packages.
  yum:
    name: "{{ item }}"
    state: latest
  with_items:
  - {{ installed_packages | intersect(packages_to_update) }}

猜你在找的Bash相关文章