我有一个简单的 Ansible 剧本,用于在我管理的所有服务器上运行更新:
- hosts: ubuntu
tasks:
- name: install all updates
apt:
upgrade: dist
update_cache: yes
autoremove: yes
autoclean: yes
- hosts: centos
tasks:
- name: install all updates
yum:
name: '*'
update_cache: yes
state: latest
# use debug to show the output
register: result
- name: Show Output
debug: msg="{{ result.stdout_lines }}"
有什么方法可以让 Ansible 向我展示在此过程中更新了哪些包?apt和yum模块都没有为此提供选项。
目前使用的 Ansible 版本是 2.4。
从 HBrijn 的评论开始,我扩展了我的剧本以显示包管理日志的结果:
结果输出:
这是一个巨大的改进,但我仍然希望有人有更好的解决方案。
我采用了 Gerald Schneider 的基本方法,并添加了一些条件来仅在发生更改时检查更新。这可以解决常见情况下的问题,尽管如果每天发生多个更新,它仍然会产生一些无关的输出。
生成输出很像:
类似的测试也可以很容易地添加到基于 dnf/yum 的发行版中。