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

标签 ansible

我一直在 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 模块的信息。 ,但我真的不想安装/更新/删除任何东西。
我可以简单地忽略它或压制它,但我很好奇是否有更好的方法?

最佳答案

我只想更新这个旧的讨论,指出现在有一个包模块可以让这更简单

- name: get the rpm or apt package facts
  package_facts:
    manager: "auto"

- name: show apache2 version
  debug: var=ansible_facts.packages.apache2[0].version

关于ansible - 在 Ansible 中检查已安装的 yum 包/rpm 版本并使用它的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37287882/

相关文章:

ansible:播放回顾:这些数字是什么意思?

ansible - Ansible:/etc不可写

shell - Ansible 不会从 shell 模块注册变量

python - 在多个ansible模块中使用共享文件

ansible - 使用 Ansible 安装软件包时如何自动接受条款?

linux - Ansible不删除目录

ansible - ansible apt 中的 state=installed 是什么意思?

ubuntu - ansible 无法重新启动 php5-fpm

ansible - 在 ansible Play book 中创建循环 - 错误

python - Ansible 不再有效