ProfessionalClubnetic · 2024 – present
Customer deployment automation
Consolidated per-customer repositories and automated provisioning with Ansible, Docker, GitHub Actions and Vault, so a new customer or staging environment goes live in minutes.
- New customer environment
- ~2 days → 5–10 min
- Deploy-time credentials
- Vault
The problem
Every new customer or staging environment was assembled by hand from separate repositories, which took about two days and made configuration drift between customers likely.
My role
Designed and implemented the provisioning playbooks, the secrets setup and the release workflows.
Main workflows
- Reusable Ansible playbooks for Docker, Compose services, Nginx, environment templates and MongoDB backups
- Vault with AppRole authentication, a KV secrets engine and audit logging
- GitHub Actions releases with staging/production selection and per-component image tags
- Cross-repository deployment triggers
Technical decisions
- Consolidated customer repositories first, so one playbook could describe every environment.
- Fetched database credentials, registry tokens and S3 keys from Vault at deploy time instead of storing them in repositories or CI variables.
- Tagged images per component so a release can promote a single service without rebuilding the rest.
Results
- New-customer and staging deployment went from approximately 2 days to 5–10 minutes.
- Backups and Nginx configuration are applied the same way for every customer.
Stack
- Ansible
- Docker
- Docker Compose
- Nginx
- GitHub Actions
- HashiCorp Vault
- MongoDB
- GHCR
Limits & context
Employer infrastructure: no configuration or source is published.