A suite of Ansible collections designed for efficient infrastructure automation. These collections focus on immutable infrastructure patterns and are geared towards a homelab environments while being robust enough for production use.
- Immutable Infrastructure: Replace rather than patch - making your infrastructure more reliable
- Performance-Focused: Tasks run only when needed, optimized for speed without compromising security
- Declarative Configuration: Define desired states clearly and achieve them consistently
- Practical Solutions: Following best practices while staying pragmatic
Collection | Capabilities | Status |
---|---|---|
🔧 block_device | - Automated block device selection - Partition management - Filesystem creation - RAM disk setup |
|
⚙️ configure | - Cloud-init configuration - Fstab configuration |
|
☸️ k3s | - Automated k3s cluster node deployment - Multi-node cluster setup - Flux CD installation - Kubeconfig extraction |
|
💻 os | - Prepare an OS with user specified set of packages - Upgrade all packages to latest - Optional kernel upgrade - Tune kernel settings ( sysctl )- Configure kernel module loading - Update initramfs |
|
📦 packages | - Package installation/removal (with aptitude or from URL)- Prevent reinstallation for removed packages, if desired - Fast no-op shortcuit if requirements already met |
|
🥧 raspberry_pi | - Kernel configuration (config.txt )- Kernel commandline parameter management ( cmdline.txt )- Pi-specific optimizations |
- Block Device Management: Automated disk provisioning, partitioning, and filesystem setup
- Kubernetes Deployment: Streamlined k3s cluster setup with Flux CD integration
- System Configuration: Comprehensive OS and service configuration management
- Package Handling: Flexible package management across different architectures
- Raspberry Pi Support: Specialized tools for Pi-based infrastructure
Each collection is designed for specific infrastructure needs:
- Setting up storage? → block_device collection handles automated disk management
- Deploying Kubernetes? → k3s collection provides streamlined cluster setup
- Configuring systems? → configure collection manages system settings
- Managing packages? → packages collection handles software deployment
- Working with Raspberry Pi? → raspberry_pi collection offers Pi-specific tools
Visit each collection's documentation for detailed usage instructions and examples.
- Comprehensive Molecule tests for each collection
- Continuous Integration via GitHub Actions
- Automated linting and syntax checking
- Detailed documentation requirements
We welcome contributions! See our Contributing Guide for:
- Development setup
- Code style guidelines
- Testing requirements
- Pull request process
- 🐛 Found a bug? Open an issue
- 💡 Have an idea? Start a discussion
- 🤝 Want to contribute? Check our Contributing Guide
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.
Built for the homelab community