2015-01-26 36 views
0

這裏是我的例子,不知道這是否可以完成,但我想輸出值{#item [1] .site#}中的sites數組,特別是item [1] .site,但它看起來好像正在轉義{{item [1] .site}}。有沒有辦法阻止它逃離字符串?Ansible 1.8.2嵌套循環,嘗試輸出項[0]字符串中的項目[1],但其被轉義

- name: Put files into docker directory 
    template: src={{ item[0].src }} dest={{ item[0].src }} 
    with_nested: 
    - [ 
     { src: 'Dockerfile.j2', dest: "/opt/docker-apache2-fpm/{{ item[1].site }}/Dockerfile" }, 
     ] 
    - sites 

這裏是輸出:

failed: [192.168.200.87] => (item=[{'dest': u'/opt/docker-apache2-fpm/{# item[1].site #}/Dockerfile', 'src': 'Dockerfile.j2'}, {'site': 'admin.mysite.com', 'user': 'mysite', 'uid': 11004}]) => {"failed": true, "item": [{"dest": "/opt/docker-apache2-fpm/{# item[1].site #}/Dockerfile", "src": "Dockerfile.j2"}, {"site": "admin.mysite.com", "uid": 11004, "user": "mysite"}]} 
msg: Destination directory does not exist 

回答

1

無法運作,因爲Ansible不重新評估的元素。但是,您可以使用replace篩選器來歸檔您的目標。

- name: Put files into docker directory 
    template: src={{ item[0].src }} dest={{ item[0].dest | replace("%site%", item[1].site) }} 
    with_nested: 
    - [ 
     { src: 'Dockerfile.j2', dest: "/opt/docker-apache2-fpm/%site%/Dockerfile" }, 
     ] 
    - sites 

在那個例子我以爲你在dest分配意味着item[0].dest而不是item[0].src