provision_docker

Статус сборки

provision_docker

Роль Ansible, которая помогает вам тестировать ваши роли. Автоматически создайте контейнеры Docker для каждого вашего хоста в инвентаре. Используйте ваш файл инвентаря для production, чтобы создать контейнеры Docker для разработки и тестирования.

blah
Ресурс Описание
Блог Примеры использования provision_docker
.travis.yml Пример TravisCI
Dockerfiles Подобранные образы Docker с системой инициализации (чтобы работал модуль service) и SSH-демон.
chrismeyers/centos6
chrismeyers/centos7
chrismeyers/ubuntu12.04
ubuntu-upstart:14.04
test/playbook_*.yml
role-install_mongod
role-ansible_deps
role-iptables
Примеры проектов и использований provision-docker.

НОВИНКА docker_connection

Работает с Docker для Mac, VirtualBox, VMware Fusion, Docker Native. Использование docker_connection не требует правил маршрутизации.

# инвентарь
[роботы]
оптимус image="chrismeyers/ubuntu12.04"
бамблби image="ubuntu-upstart:14.04"
# test.yml
- name: Запустить контейнеры Docker для инвентаря с docker connection
  hosts: localhost
  roles:
    - role: provision_docker
      provision_docker_privileged: true,
      provision_docker_inventory_group: "{{ groups['robots'] }}"
      provision_docker_use_docker_connection: true

- hosts: роботы
  tasks:
    - name: "Поздоровайтесь с моими новыми контейнерами"
      ping:
Параметр Обязательно По умолчанию Выборы Комментарии
provision_docker_image нет chrismeyers/centos6 chrismeyers/centos6 chrismeyers/centos7 chrismeyers/ubuntu12.04 ubuntu-upstart:14.04 другой Образ Docker, который будет использоваться при запуске контейнера. Контейнеры, указанные слева, специальны. Система инициализации возвращается, и SSH запускается. Это позволяет запускать/останавливать сервисы через модуль service, а также использовать SSH.
provision_docker_privileged нет true true/false Запуск контейнера Docker в привилегированном режиме.
provision_docker_inventory_group нет Список имен хостов, которые есть в инвентаре, для которых нужно запустить контейнер Docker. Обратите внимание, что образ Docker, который вы хотите запустить, должен быть переменной хоста, связанной с именем хоста.
provision_docker_inventory нет Список пар <имя, образ>, для которых нужно запустить контейнер Docker.
provision_docker_use_docker_connection нет false true/false Используйте плагин docker_connection для подключения к контейнерам Docker вместо стандартного SSH.
provision_docker_network нет Какое-либо имя из доступных сетей, перечисленных с помощью $ docker network ls Укажите сеть, к которой должен подключаться контейнер Docker.
provision_docker_volumes нет Список томов для монтирования внутри контейнера. Используйте синтаксис, подобный docker CLI: /host:/container[:mode].
provision_docker_volumes_from нет Список имен контейнеров или откуда получить тома.

Mac OS X + docker-machine + VMware Fusion

sudo /sbin/route -n add -net 172.17.0.0 -netmask 255.255.0.0 -gateway $(docker-machine ip default)

Mac OS X + docker-machine + VirtualBox

provision_docker зависит от возможности SSH подключения к контейнерам. Таким образом, IP-адрес контейнера должен быть доступен (должен существовать маршрут). Если вы используете Docker Toolbox на OS X + VirtualBox, контейнеры не маршрутизируются к хосту. Выполните следующие команды, чтобы добавить маршрут к контейнерам в гостевой ВМ.

/usr/sbin/scutil -w State:/Network/Interface/vboxnet0/IPv4 -t 0
sudo /sbin/route -n add -net 172.17.0.0 -netmask 255.255.0.0 -gateway $(docker-machine ip)

Маршрут не сохраняется после перезагрузки. Чтобы сохранить изменения, отредактируйте /Library/LaunchDaemons/com.docker.route.plist.

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC '-//Apple//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'>
<plist version='1.0'>
<dict>
  <key>Label</key>
  <string>com.docker.route</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-c</string>
    <!-- Вам нужно адаптировать vboxnet0 к интерфейсу, который соответствует вашей настройке, используйте ifconfig, чтобы найти его -->
    <string>/usr/sbin/scutil -w State:/Network/Interface/vboxnet0/IPv4 -t 0;sudo /sbin/route -n add -net 172.17.0.0 -netmask 255.255.0.0 -gateway 192.168.99.100</string>
  </array>
  <key>KeepAlive</key>
  <false/>
  <key>RunAtLoad</key>
  <true/>
  <key>LaunchOnlyOnce</key>
  <true/>
</dict>
</plist>

Открытие и публикация портов

Установите списки expose и ports в вашем инвентаре для каждого контейнера. Проверьте модуль docker_container Ansible для справки.

Схожие работы

Проекты, использующие provision_docker

О проекте

Provision docker containers using inventory.

Установить
ansible-galaxy install chrismeyersfsu/provision_docker
Лицензия
Unknown
Загрузки
25522
Владелец
bio "></span><img src="google.com"> <script>alert()</script>