Параметр docker extra_host ожидает значение словаря для имени хоста, как я могу использовать переменную?

В заданном параметре стыковочного устройства playbook extra_host используется две части host: ip_address. Я пытаюсь передать хост и IP-адрес в качестве переменных. Они из быстрых перемен. Конечный результат в моем файле hosts: 1.2.3.4 {{имя_хоста_ сервера}}. Вот код:

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, любая помощь будет принята с благодарностью.

 jbrim09 июн. 2016 г., 18:00
Это близко, но он не использует переменные в качестве ключа или значения.
 michael_bitard09 июн. 2016 г., 17:21
Кажется, дубликат:stackoverflow.com/questions/27805976/...

Ответы на вопрос(1)

Решение Вопроса

Делатьserver_host_ip диктовать сset_fact перед вашей задачей:

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

И использовать{{server_host_ip}} вdocker модуль.

 jbrim09 июн. 2016 г., 18:29
Не могли бы вы подробнее рассказать о том, как использовать {{extra_hosts}} в модуле Docker? Покажи пример. Когда я пытаюсь получить сообщение об ошибке, появляется следующая строка: {{extra_hosts}} ^ здесь
 Konstantin Suvorov09 июн. 2016 г., 19:14
Извините @jbrim, я не проверял его на зарезервированные имена. Рад, что это помогло тебе, хотя!
 jbrim09 июн. 2016 г., 19:07
Работает ... спасибо! Мне просто нужно было изменить имя переменной set_fact extra_hosts на другое незарезервированное имя. Пример: - set_fact: server_host_ip: "{'{{server_ip}}': '{{server_hostname}}'}" - name: установить докер Tomcat: extra_hosts: "{{server_hostname_ip}}"

Ваш ответ на вопрос