Skip to content

ppat/homelab-ops-ansible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Homelab Ops Ansible Collections

lint

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.

Core Principles

  • 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

Collections

Collection Capabilities Status
🔧 block_device - Automated block device selection
- Partition management
- Filesystem creation
- RAM disk setup
block_device
⚙️ configure - Cloud-init configuration
- Fstab configuration
configure
☸️ k3s - Automated k3s cluster node deployment
- Multi-node cluster setup
- Flux CD installation
- Kubeconfig extraction
k3s
💻 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
os
📦 packages - Package installation/removal (with aptitude or from URL)
- Prevent reinstallation for removed packages, if desired
- Fast no-op shortcuit if requirements already met
packages
🥧 raspberry_pi - Kernel configuration (config.txt)
- Kernel commandline parameter management (cmdline.txt)
- Pi-specific optimizations
raspberry_pi

Key Features

  • 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

Getting Started

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.

Quality Assurance

  • Comprehensive Molecule tests for each collection
  • Continuous Integration via GitHub Actions
  • Automated linting and syntax checking
  • Detailed documentation requirements

Contributing

We welcome contributions! See our Contributing Guide for:

  • Development setup
  • Code style guidelines
  • Testing requirements
  • Pull request process

Community

License

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