docker_stack
Docker Stack
Роль для развертывания Docker Stack из файла docker-compose.yml в директории плейбука.
Использование
Docker регистр по умолчанию настроен на GitHub Package Registry, но его можно изменить, передав новое имя хоста (например, docker.io) через переменную docker_registry
. Учетные данные передаются в качестве переменных окружения:
DOCKER_USERNAME=mydockeraccount
DOCKER_PASSWORD=ah32hg3hrgrmbds
Если в директории плейбука существует файл секретов Vaultenv с именем secrets.conf
, роль копирует его на сервер и создает файл .env
, содержащий учетные данные Vault, если они переданы как переменные окружения:
VAULT_ADDR=https://vault.company.com:443
VAULT_TOKEN=s.g23gberb32b322b23b4
Роль создаст Docker Secrets из любых файлов, найденных в {{ inventory_dir }}/secrets
. Из-за ограничений на ротацию Docker Secrets роль удаляет и заново создает стек при каждом обновлении. Это делается для того, чтобы секреты не использовались во время обновления.
Если установлена переменная окружения PROJECT
, она будет использоваться как имя стека. Если установлены TAG
и ENV
, они будут переданы в Swarm.
Использование
Включите эту роль в плейбук, используя файл requirements.txt.
Пример плейбука
- hosts: manager[0]
roles:
- docker-stack
Развертывание
Эта роль будет автоматически собираться и разворачиваться в Ansible Galaxy при каждом пуше тега Semver в репозиторий.
A role to deploy a Docker Stack from a docker-compose.yml file and configure Vaultenv
ansible-galaxy install gendall/ansible-docker-stack