Ansible docker_container etc_hosts with variable key

Apo*_*llo 3 ansible docker ansible-playbook ansible-2.x

我有一个ansible脚本,我通过它生成一个docker容器并向它添加几个主机条目,因为etc_hosts将key作为主机名和相应的IP地址.在我的情况下,我需要让主机名和IP地址由某个变量驱动,例如

docker_container:
name: image-name
image: image-to-be-pulled
state: started
restart_policy: always
etc_hosts:
  "{{ domain_1 }}": "{{ domain_1_ip }}"
  domain_2 : "{{ domain_2_ip }}"
  domain_3 : "{{ domain_3_ip }}"  
Run Code Online (Sandbox Code Playgroud)

当我进行上述配置时,它会将主机文件的条目作为

xx.xx.xx.xxx {{ domain_1 }}
Run Code Online (Sandbox Code Playgroud)

理想情况下,主机文件应该包含针对IP的主机名,有人可以建议我如何实现这一点.提前致谢

Kon*_*rov 5

试试这个语法:

docker_container:
  name: image-name
  image: image-to-be-pulled
  state: started
  restart_policy: always
  etc_hosts: >
    {
      "{{ domain_1 }}": "{{ domain_1_ip }}",
      "domain_2" : "{{ domain_2_ip }}",
      "domain_3" : "{{ domain_3_ip }}"
    }
Run Code Online (Sandbox Code Playgroud)

这将形成类似字母的字符串,ansible的模板将评估为dict.
注意,应引用每个项目,并用逗号分隔对.