2017-02-28 63 views
1

我想實現這個邏輯:如果可用,請安裝一個名爲yum的軟件包,如果該軟件包在啓用的回收站中不存在,則不會失敗,只有在安裝失敗時纔會失敗。如何使用ansible來實現安裝yum軟件包?

+0

我想你可以使用'failed_when'語句來實現這一點。 –

回答

1

只是做了搜索第一,且僅當它返回任何結果安裝:

- 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","")) != ""' 
相關問題