如何解决ansible yum任务-确定已更改/已安装的rpm
目标: 通过yum任务更新/安装rpm时,执行其他任务
在测试我的旁白剧的某个时候,在某些环境中,当我通过调试打印yum任务的输出时,我有一个output.changes.installed
列表和一个output.changes.updated
列表。我的游戏如下:
- name: install rpms
yum:
name: "{{ rpms | join(',') }}"
disablerepo: '*'
enablerepo: 'MyRepo'
update_cache: True
state: latest
register: yum_output
- debug:
msg: "{{ yum_output }}"
然后在以后的任务中,我遇到了这个问题:
- name: do the related thing
become_user: me
command: "do the thing"
register: thing_output
when:
- yum_output.changed == True
- "yum_output.changes.installed | union(yum_output.changes.updated) | join('|') | search('something')"
最后,如果升级/安装的任何rpm与我的搜索字词匹配,我将执行此附加任务。
问题是我无法弄清楚为什么不再填充installed
和updated
键,并且找不到关于它们的任何文档,但是我知道我看到了它们!是不是我所有系统中都没有的某些新版本?我收到一条错误消息,指出“已安装”不是dict中的键。我只有一个“结果”键。
我的yum任务输出如下:
{
"msg": {
"changed": false,"failed": false,"msg": "","rc": 0,"results": [
"All packages providing X are up to date","All packages providing Y are up to date","All packages providing Z are up to date",""
]
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。