2014-03-26 6 views
7

Ist es möglich, with_first_found in einer with_items Schleife zu verwenden wie:ansible 1.6> mit with_first_found in einer with_items loop?

- template: 
    dest=/foo/{{ item.name }}-{{ item.branch | default('master') }} 
    src={{ item }} 
    with_first_found: 
    - {{ item.name }}-{{ item.branch | default('master') }} 
    - {{ item.name }}.j2 
    - apache_site.j2 
    with_items: apache_sites 

kann nicht scheinen, um es with_nested mit arbeiten.

+0

Sieht behaart, was wollen Sie erreichen? – Rico

Antwort

4

Kombination Schleifen wird nicht unterstützt, aber Sie können sie als Lookups verwenden:

vars: 
    site_locations: 
    - {{ item.name }}-{{ item.branch | default('master') }} 
    - {{ item.name }}.j2 
    - apache_site.j2 

tasks: 
    - template: 
     dest=/foo/{{ item.name }}-{{ item.branch | default('master') }} 
     src={{ lookup('first_found', site_locations }} 
     with_items: apache_sites 
0

ich ein ähnliches Bedürfnis nach tc Server hatte (Kater). Das ist, was ich tat:

  1. ich die ortsspezifische Konfiguration in einer separaten Aufgaben Datei setzen (Configure-sites.yml):

    - template: 
        src: "{{ item }}" 
        dest: /foo/{{ apache_site.name }}-{{ apache_site.branch | default('master') }} 
        with_first_found: 
        - "{{ apache_site.name }}-{{ apache_site.branch | default('master') }}" 
        - "{{ apache_site.name }}.j2" 
        - apache_site.j2 
    
  2. aus einer separaten Aufgaben Datei-I enthalten, dass Aufgaben Datei, vorbei an sie jeden Standort:

    - include: configure-sites.yml 
        with_items: "{{ apache_sites }}" 
        loop_control: 
        loop_var: apache_site 
    

Diese Verwendung von loop_control macht die A erfordert nsible 2.1+: http://docs.ansible.com/ansible/playbooks_loops.html#loop-control

Falls es hilft, können Sie sehen, genau das, was ich hier tat
https://github.com/bmaupin/ansible-role-tcserver/blob/master/tasks/main.yml
https://github.com/bmaupin/ansible-role-tcserver/blob/master/tasks/configure-instances.yml

Verwandte Themen