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'語句來實現這一點。 –