gendall.docker_stack
Docker Stack
一个用于从 playbook 目录中的 docker-compose.yml 文件部署 Docker Stack 的角色。
使用方法
Docker 注册表默认使用 GitHub Package Registry,但可以通过将新的主机名(例如 docker.io)作为 docker_registry
变量传递来更改。凭据通过环境变量设置为密码:
DOCKER_USERNAME=mydockeraccount
DOCKER_PASSWORD=ah32hg3hrgrmbds
如果在 playbook 目录中存在名为 secrets.conf
的 Vaultenv 密钥文件,该角色会将其复制到服务器,并创建一个包含 Vault 凭据的 .env
文件,这些凭据如果通过环境变量传递:
VAULT_ADDR=https://vault.company.com:443
VAULT_TOKEN=s.g23gberb32b322b23b4
该角色将从 {{ inventory_dir }}/secrets
中查找的任何文件中创建 Docker Secrets。由于 Docker Secrets 轮换的局限性,该角色在每次更新时都会删除并重新创建堆栈。这样可以确保在更新时密钥不会被使用。
如果设置了 PROJECT
环境变量,将其用作堆栈名称。如果设置了 TAG
和 ENV
,它们将传递给 Swarm。
使用方法
使用 requirements.txt 文件在 playbook 中包含此角色。
示例 playbook
- hosts: manager[0]
roles:
- docker-stack
部署
当将 Semver 标签推送到仓库时,此角色将自动构建并部署到 Ansible Galaxy。