LINUX.ORG.RU

ansible + docker + dns

 , ,


0

1

Доброго времени суток. Появилась кривая задача, потому не могу придумать не-кривое решение. Есть ansible-роль, запускающая docker контейнер. Её последняя задача выглядит так:

- name: blah
  command: >
      docker run -d
      --dns={{ansible_docker0.ipv4.address}}
 #далее простыня параметров для logstash/spring cloud/etc.
Суть: есть контейнеры, запускающиеся на разных физических хостах. В такой конфигурации не работает репликация Infinispan кэшей мультикастом по udp. Уже выяснили, что оно начинает работать в конфигурации сети контейнера: --net host.

--net host и --dns - взаимоисключающие параметры. Есть стремное решение: использовать --net host, при этом на старте контейнера ansible скриптом писать этот самый dns из переменной ansible в /etc/resolv.conf запускаемого контейнера. Вопрос - как это сделать не через всем печально известное место?

- name: extending resolv.conf
  command: docker exec "`docker ps | grep {{container_name}}/{{image_name}} | awk '{print $1}'`" /bin/bash -c "echo nameserver {{ansible_docker0.ipv4.address}} >> /etc/resolv.conf"

Собственно, листинг выше - и есть это самое смердящее место. Во-первых, pipe здесь не работает и не будет. Вопрос простой: какой из способов извернуться будет наиболее изящным?


P.S.: С ansible знаком постольку поскольку, можете не тратить время на гнилые помидоры.

Во-первых, pipe здесь не работает и не будет.

Потому что для этого есть модуль shell.

Про запуск докера ничего не могу сказать, не в курсе.

alozovskoy ★★★★★ ()

Да, действительно лучше

shell
модуль использовать

ipeacocks ★★★★★ ()

Дальше - веселее. --dns кроме /etc/resolv.conf наполняет ещё и /etc/hosts. Здесь на ansible красиво не выехать.

bytecode ★★ ()

Немного встряну, возможно не в тему. Мультикаст в докере был сломан до недавнего времени. В частности не работал avahi. В последней версии вроде починили.

anonymous ()
Ответ на: комментарий от bytecode

Проверить просто. В параметрах сетевого интерфейса при выводе ifconfig отсутствует флаг MULTICAST.

aiker ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.