Iba*_*opo 5 yum update ansible
我有几十台混合了 CentOS 6 和 7 的主机。我最近开始使用 Ansible 来帮助管理它们,但我仍然是一个新手。
和每个人一样,我需要定期更新这些计算机上的软件包,特别是出于安全原因。但是,我不想更新它们上的所有软件包,而只想更新特定的软件包——这可能因机器而异,具体取决于其角色。我过去曾使用 Ansible 的yum命令(带有state=latest和特定软件包列表)来更新这些主机,但直到今天我才注意到,在针对主机运行该命令时,如果未安装列出的软件包之一然后将在该机器上安装它。
我需要的是一种向 Ansible 提供软件包列表的方法,然后它会对每个主机执行操作: - 如果软件包存在,请将其更新到最新版本;- 如果包不存在,则不执行任何操作。
有没有一种实用的方法可以做到这一点?
如果您只想使用可用更新更新软件包的子集,您可能想尝试@wurtel 的尝试。您需要像这样注册已安装的软件包:
- name: Get installed packages.
command: rpm -qa --qf "%{NAME}\n"
register: installed_packages
Run Code Online (Sandbox Code Playgroud)
然后,您可以定义集合论过滤器并更新允许更新的包列表中定义的所有包packages_to_update。
- name: Update subset of packages.
yum:
name: "{{ item }}"
state: latest
with_items:
- {{ installed_packages | intersect(packages_to_update) }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14894 次 |
| 最近记录: |