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

在Ansible中检查已安装的yum package / rpm版本并使用它的最佳方

发布时间:2020-12-15 22:25:10 所属栏目:安全 来源:网络整理
导读:我已经在CentOS 7上使用Ansible(2.0.0.2)了.我正在尝试从已安装的rpm / yum软件包中获取一个版本,但在运行脚本时遇到了警告消息. Ansible脚本: ---- name: Get version of RPM shell: yum list installed custom-rpm | grep custom-rpm | awk '{print $2}'
我已经在CentOS 7上使用Ansible(2.0.0.2)了.我正在尝试从已安装的rpm / yum软件包中获取一个版本,但在运行脚本时遇到了警告消息.

Ansible脚本:

---
- name: Get version of RPM
  shell: yum list installed custom-rpm | grep custom-rpm | awk '{print $2}' | cut -d'-' -f1
  register: version
  changed_when: False

- name: Update some file with version
  lineinfile:
    dest: /opt/version.xml
    regexp: "<version>"
    line: "  <version>{{ version.stdout }}</version>"

运行此工作正常并执行它应该执行的操作,但它在执行后返回警告:

ok: [default] => {“changed”: false,“cmd”: “yum list installed custom-rpm | grep custom-rpm | awk ‘{print $2}’ | cut -d’-‘ -f1”,“delta”: “0:00:00.255406”,“end”: “2016-05-17 23:11:54.998838”,“rc”: 0,“start”: “2016-05-17 23:11:54.743432”,“stderr”: “”,“stdout”: “3.10.2”,“stdout_lines”: [“3.10.2”],“warnings”: [“Consider using yum module rather than running yum”]}

[WARNING]: Consider using yum module rather than running yum

我在Ansible site上查找了yum模块的信息,但我真的不想安装/更新/删除任何东西.

我可以简单地忽略它或抑制它,但我很好奇是否有更好的方法?

解决方法

你这样做的方式非常好.导致警告的检查非常简单,只是根据预定义的列表检查第一个单词.它忽略了进一步的选项,并且经常导致无法通过相应模块解决的警告,例如在yum情况下.

要摆脱警告你可以简单地做一个:

shell: `which yum` list installed custom-rpm | grep custom-rpm | awk '{print $2}' | cut -d'-' -f1

它查找yum的完整路径,然后执行.这是完全相同的事情,但从Ansible的角度来看,它会调用哪个而不是yum来避免警告.

如果要全局停用此类警告,可以在ansible.cfg中设置command_warnings = False. (见docs)

根据文档,您还可以在命令结束时添加warn = no,但这对我来说真的很奇怪,因为它似乎是命令的一部分.

(编辑:李大同)

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

    推荐文章
      热点阅读