这是我的示例,不确定是否可以这样做,但我想从sites数组输出值,特别是item [1] .site,在item [0] .dest中,但它看起来像它正在转移{{item [1] .site}}到{#item [1] .site#}。有没有办法防止它逃脱字符串?
- 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
答案 0 :(得分: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
在该示例中,我假设您在item[0].dest
作业中表示item[0].src
而非dest
。