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