gendall.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.docker_stack