2014-01-16 10 views
10

Ich richte einen automatisierten Provisioning-Prozess für einen Webserver mit Ansible ein. Dazu habe ich ein Array Wörterbücher mit vhosts Setup enthält:Wie über Array mit Vorlagenvariablen mit ansible?

vhosts: 
    - 
    name: 'vhost1' 
    server_name: 'domain1.com' 
    - 
    name: 'vhost2' 
    server_name: 'domain2.com' 

ich eine Vorlage mit einigen generic nginx vhost Konfiguration bereit:

server { 
    listen 80; 
    server_name {{ item.server_name }}; 

    root /home/www/{{ item.name }}/htdocs; 
    index index.php; 

    location/{ 
     try_files $uri $uri/ /index.php?$args; 
    } 
} 

Schließlich verwende ich die folgende Aufgabe ein vorbereitet kopieren Vorlage zum Zielhost:

- name: Setup vhosts 
    template: src=vhost.j2 dest=/etc/nginx/sites-available/{{ item.name }} 
    with_items: vhosts 

die Aufgaben iteriert über die vhost Variable wie erwartet. Leider übergibt Ansible das aktuelle Element nicht vom Iterator an die Vorlage, stattdessen hat die Vorlage Zugriff auf alle aktuell gültigen Variablen.

Gibt es eine Möglichkeit, das aktuelle Element vom Iterator an die Vorlage zu übergeben?

Antwort

7

stellt sich heraus, dass der obige Code absolut perfekt funktioniert. Es gab ein weiteres Problem in meiner Variablen YAML-Datei.