The Killer Bees project is a comprehensive infrastructure automation solution that demonstrates building and managing a Docker Swarm cluster with high availability, load balancing, and distributed storage. This project uses modern DevOps tools to create a production-ready container orchestration environment suitable for development labs and scalable to production use.
This project provides a complete Docker Swarm setup featuring:
- 3-node Docker Swarm cluster with high availability
- Layer 7 routing with Traefik for automatic service discovery
- Distributed file system using GlusterFS for persistent container volumes
- Load balancing with HAProxy for SSL offloading and traffic distribution
- Web UI management with Portainer for Docker Swarm administration
The Killer Bees project is organized into three main components:
🔧 Ansible
Infrastructure automation and configuration management for the Docker Swarm cluster.
- Automated deployment of Docker Swarm, GlusterFS, Traefik, and HAProxy
- Service configuration and management playbooks
- Inventory management for different environments
📦 Packer
Base VM image creation for consistent infrastructure deployment.
- Automated Debian 12 base box creation for Vagrant
- Support for VirtualBox and KVM virtualization platforms
- Customizable preseed configurations for unattended installations
🖥️ Vagrant
Local development environment provisioning and testing.
- Multi-machine Vagrant setup for complete cluster simulation
- Automated VM provisioning with proper networking and storage
- Integration with Ansible for seamless development workflows
-
Clone the repository
git clone <repository-url> cd killerbees
-
Set up your environment
- Follow the setup instructions in each component's README
- Install required dependencies (Ansible, Vagrant, Packer)
-
Choose your deployment method
- Development: Use the Vagrant setup for local testing
- Production: Use the Ansible playbooks directly on your infrastructure
- Custom Images: Use Packer to build custom base images
- Docker & Docker Swarm: Container orchestration and clustering
- GlusterFS: Distributed filesystem for persistent storage
- Traefik: Layer 7 reverse proxy with automatic service discovery
- HAProxy: Load balancer and SSL termination
- Portainer: Web-based Docker management interface
- Ansible: Infrastructure automation and configuration management
- Vagrant: Development environment provisioning
- Packer: Automated machine image creation
- Development Labs: Complete containerized application development environment
- Learning Platform: Hands-on experience with container orchestration concepts
- Production Foundation: Scalable base for production Docker Swarm deployments
- High Availability Testing: Test application behavior in a clustered environment
Each component has detailed documentation in its respective directory:
- Ansible Documentation - Infrastructure automation and deployment
- Packer Documentation - Base image creation and customization
- Vagrant Documentation - Local development environment setup
- Linux/macOS development environment
- Ansible CLI utilities
- Vagrant (for local development)
- VirtualBox or KVM (for virtualization)
- Sufficient resources for multi-VM deployment
- Review the component-specific README files for detailed setup instructions
- Choose your deployment strategy based on your use case
- Follow the quick start guide for your chosen approach
- Explore the example applications and deployment patterns
Note: This project is designed for educational and development purposes. For production deployments, additional security hardening and operational considerations should be implemented.