在Ansible中检查已安装的yum package / rpm版本并使用它的最佳方
我已经在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>" 运行此工作正常并执行它应该执行的操作,但它在执行后返回警告:
我在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,但这对我来说真的很奇怪,因为它似乎是命令的一部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |