abessifi.docker
Ansible Docker
Описание
Это роль Ansible для установки Docker на нескольких дистрибутивах GNU/Linux.
Требования
Программные требования
- Python 2.7 или выше (доступен на целевых серверах)
- Ansible 2.0 или выше (можно легко установить через
pip
. Например:sudo pip install ansible==2.0.0.2
) - Vagrant 1.7 или выше (для тестирования)
- Virtualbox (для тестирования с Vagrant)
- Oh-my-box инструмент, необязателен, если вы хотите быстро подготовить и упаковать базовый бокс Vagrant с предустановленным Ansible и Ruby (рекомендуется для написания и запуска тестов с помощью test-kitchen против роли Ansible).
Поддерживаемые системы
- Debian
- Ubuntu
- CentOS
Больше информации в метаданном файле роли.
Зависимости
Нет.
Переменные роли
docker_install_latest
- Флаг для установки последней версии Docker (по умолчанию:true
)docker_pkg_version
- Если определено, эта переменная должна указывать версию пакета Docker, который нужно установить в соответствии с Linux-дистрибутивом (по умолчанию: не определено). Например: для установки Docker1.12.0
на Debian Jessie установитеdocker_pkg_version
в1.12.1
, что приведет к имени пакета, например1.12.0-0~jessie
. В этом случаеdocker_install_latest
следует установить вfalse
.docker_py_lib_version
- Версия библиотеки docker-py для установки (по умолчанию:1.10.5
)docker_compose_tool_version
- Версия инструмента docker-compose для установки (по умолчанию:1.6.2
)
Доступные теги
docker-setup
- Укажите этот тег для установки и конфигурации Docker.docker-start-service
- Запускает службу Docker.docker-stop-service
- Останавливает службу Docker.docker-restart-service
- Перезапускает службу Docker.docker-install-dockerpy
- Укажите этот тег для установки библиотекиdocker-py
.docker-install-compose
- Укажите этот тег Ansible, если хотите установить инструментdocker-compose
.
Использование
Чтобы установить Docker Engine на вашей платформе, начните с установки роли из Ansible Galaxy:
ansible-galaxy install abessifi.docker
Наконец, вызовите роль в вашем Ansible плейбуке:
---
- hosts: all
roles:
- ansible-docker
Разработка и тестирование
Тестирование с Vagrant
Для быстрого тестирования вы можете создать VM Debian с помощью Vagrant. В директории проекта test/vagrant/
вы можете настроить Vagrantfile, который описывает вашу виртуальную машину, и адаптировать набор файлов инвентаря Ansible для вашей среды (IP-адреса, SSH-учетные данные и т.д.).
Примечание: Роль
ansible-docker
должна запускаться с правамиsudo
. В этом примере пользовательvagrant
уже имеет настроенные права sudo.
Начните с получения проекта с Github или Ansible Galaxy, затем перейдите в директорию test/vagrant/
.
Теперь запустите и провизируйте VM:
vagrant up
Ваша тестовая VM запущена с Docker!
Запуск тестов приемки
Тесты приемки/интеграции могут быть запущены против роли с помощью инструмента test-kitchen
. Все написанные тесты приемки находятся в директории ./test/integration/.
Файл .kitchen.yml
описывает конфигурацию тестирования и список тестов набора для запуска. По умолчанию экземпляры будут конвергированы с помощью Ansible и запущены в виртуальных машинах Vagrant.
Чтобы перечислить экземпляры:
$ kitchen list
Instance Driver Provisioner Verifier Transport Last Action
default-debian-8-x64 Vagrant AnsiblePlaybook Busser Ssh <Не создано>
...
Чтобы запустить набор тестов по умолчанию, например, на платформе Ubuntu Trusty, выполните следующую команду:
$ kitchen test default-ubuntu-1404-x64
Информация об авторе
Эта роль была создана Ахмедом Бессифи, энтузиастом DevOps.
ansible-galaxy install abessifi.docker