1
我想实现这个逻辑:如果可用,请安装一个名为yum的软件包,如果该软件包在启用的回收站中不存在,则不会失败,只有在安装失败时才会失败。如何使用ansible来实现安装yum软件包?
我想实现这个逻辑:如果可用,请安装一个名为yum的软件包,如果该软件包在启用的回收站中不存在,则不会失败,只有在安装失败时才会失败。如何使用ansible来实现安装yum软件包?
只是做了搜索第一,且仅当它返回任何结果安装:
- hosts: host
tasks:
- name: Search for package
yum:
list: <package_name>
register: package_list
- name: Install package
yum:
name: <package_name>
state: present
become: yes
when: 'package_list.results | length != 0'
取代<package_name>
与包你有兴趣
这里是failed_when
替代,但它是相当因为它依赖yum返回的消息来匹配:
- hosts: host
tasks:
- name: Install package
yum:
name: <package_name>
state: present
register: result
become: yes
failed_when: '(result.msg | regex_replace("No package matching .* found available, installed or updated","")) != ""'
我想你可以使用'failed_when'语句来实现这一点。 –