2017-02-28 9 views
1

私はこのロジックを実装したいと考えています:利用可能な場合は名前付きyumパッケージをインストールし、有効なreposにパッケージが存在しない場合は失敗せず、インストールが失敗した場合にのみ失敗します。私はどのようにしてyumパッケージを実装すればよいのですか?

+0

これを達成するには、「失敗しました」という文を作成することができますね。 –

答えて

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","")) != ""' 
関連する問題