加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:35:28 所属栏目:安全 来源:网络整理
导读:我有几十台主机,它们是CentOS 6和7的混合体.我最近开始使用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) }}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读