通过ansible检查主机上是否安装了某个rpm包,如果没有安装则执行特定脚本:
由于rpm -q
可以检查一个包是否存在,并且如果包不存在就会返回package XXXX is not installed
,所以思路先执行rpm -q XXX
,将执行返回的结果存放到值rpm_check
中,然后根据rpm_check
打印输出中find
是否存在字符串is not installed
,检查字符串的结果为1
表示没有就表明匹配上了is no installed
,也就是确实没有安装软件包,就可以执行脚本:
- name: Check if foo.rpm is installed
command: rpm -q foo.rpm
register: rpm_check
- name: Execute script if foo.rpm is not installed
command: somescript
when: rpm_check.stdout.find('is not installed') == 1