Как подключиться для запуска задачи ansible внутри контейнера docker на удаленном хосте (через s sh) - PullRequest
1 голос
/ 20 января 2020

Я хочу использовать задачи ansible для внесения изменений в базу данных postgres (например, добавить пользователя), работающую внутри docker контейнера на удаленном хосте , который доступен только через s sh.

Мне удалось только установить локальное docker соединение или удаленное docker соединение с открытым портом docker. Что не вариант.

Возможно ли это вообще? Должен ли я использовать другой подход?

1 Ответ

1 голос
/ 20 января 2020

Вы не получите Ansible для запуска задач внутри контейнера на удаленном хосте. Можно попробовать несколько способов:

Docker переадресация сокетов

Вместо того, чтобы публично выставлять сокет Docker, перенаправьте его через соединение sh. Например:

ssh -L /tmp/docker.sock:/var/run/docker.sock remotehost

Пока это соединение активно, вы можете получить доступ к удаленному docker через локальный сокет /tmp/docker.sock, например, установив DOCKER_HOST=unix:///tmp/docker.sock в вашей среде.

Это означает, что вы можете использовать Ansible docker драйвер подключения для запуска задач внутри удаленного контейнера.

Просто запустите команды на удаленном хосте

Если у вас есть Postgres При запуске внутри контейнера на удаленном хосте вам не нужно запускать задачи внутри контейнера, чтобы общаться с Postgres. При соответствующей аутентификации вы можете напрямую подключиться к postgres по IP-адресу контейнера или к порту, опубликованному на хосте.

В любом случае вы будете использовать обычное Ansible соединение *1032* водитель.

...