gendall.docker_stack
Docker Stack
Rola do wdrożenia Docker Stack z pliku docker-compose.yml w katalogu playbooka.
Użytkowanie
Domyślnie rejestr Docker to GitHub Package Registry, ale można go zmienić, podając nową nazwę hosta (np. docker.io) jako zmienną docker_registry
. Poświadczenia to hasło jako zmienne środowiskowe:
DOCKER_USERNAME=mydockeraccount
DOCKER_PASSWORD=ah32hg3hrgrmbds
Jeśli w katalogu playbooka znajduje się plik sekretny o nazwie secrets.conf
, rola skopiuje ten plik na serwer i stworzy plik .env
, zawierający poświadczenia Vault, jeśli są podane jako zmienne środowiskowe:
VAULT_ADDR=https://vault.company.com:443
VAULT_TOKEN=s.g23gberb32b322b23b4
Rola utworzy sekrety Docker z plików znajdujących się w {{ inventory_dir }}/secrets
. Z powodu ograniczeń rotacji sekretnych, rola usuwa i ponownie tworzy stack przy każdej aktualizacji. Dzięki temu sekrety nie są używane podczas aktualizacji.
Jeśli zmienna środowiskowa PROJECT
jest ustawiona, zostanie użyta jako nazwa stacka. Jeśli ustawione będą TAG
i ENV
, zostaną one przekazane do Swarm.
Użytkowanie
Dołącz tę rolę w playbooku, używając pliku requirements.txt.
Przykładowy playbook
- hosts: manager[0]
roles:
- docker-stack
Wdrożenie
Ta rola będzie automatycznie budowana i wdrażana na Ansible Galaxy po tym, jak tag Semver zostanie wypuszczony do repozytorium.
A role to deploy a Docker Stack from a docker-compose.yml file and configure Vaultenv
ansible-galaxy install gendall.docker_stack