2014-01-16 4 views
10

私はWebサーバーのための自動化されたプロビジョニングプロセスを、Ansibleを使って設定しています。このために、私はセットアップにバーチャルホストを持つ辞書を含む配列を持っている:テンプレート変数を含む配列を安全にループする方法は?

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

私はいくつかの一般的なnginxのバーチャルホストの設定とテンプレートを用意し:

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; 
    } 
} 

は最後に、私は準備をコピーするには、次のタスクを使用しますターゲットホストへのテンプレート:vhost変数の上に

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

タスクが反復予想通り。残念ながら、Anabilitiesは現在のアイテムをイテレータからテンプレートに渡すのではなく、テンプレートは現在有効なすべての変数にアクセスできます。

現在のアイテムをイテレータからテンプレートに渡す方法はありますか?

答えて

7

上記のコードが完全に完璧に機能することが判明しました。変数YAMLファイルに別の問題がありました。

関連する問題