docker extra_host参数需要hostname的字典值,我该如何使用变量?

时间:2016-06-09 15:11:11

标签: docker ansible ansible-playbook

在ansible playbook docker参数中,extra_host需要两部分主机:ip_address。我试图将主机和ipaddress作为变量传递。他们来自迅速的变革。我的hosts文件的最终结果是:1.2.3.4 {{server_hostname}}。这是代码:

vars_prompt:
  - name: "server_ip"
    prompt: "Please enter the server IP address"
    private: no

  - name: "server_hostname"
    prompt: "Please enter the server hostname"
    private: no

tasks:    
  - name: Install Tomcat
    docker:
      image: tomcat:8.0
      pull: missing
      name: tomcat
      state: restarted
      ports: 
        - "8080:8080"
        - "443:443"
      extra_hosts:
        "{{server_hostname}}": "{{server_ip}}"

我是ansible playbook的新手,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

在任务开始之前使用server_host_ip制作set_fact字典:

- set_fact:
    server_host_ip: "{'{{host_name}}':'{{host_ip}}'}"

并在{{server_host_ip}}模块中使用docker