Skip to content

ppat/homelab-ops-ansible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

53751d0 Β· Mar 10, 2025
Mar 10, 2025
Feb 16, 2025
Mar 10, 2025
Feb 17, 2025
Feb 24, 2025
Mar 10, 2025
Feb 17, 2025
Feb 17, 2025
Feb 17, 2025
Mar 10, 2025
Apr 27, 2024
Apr 27, 2024
Feb 16, 2025
Feb 16, 2025
Feb 16, 2025
Jan 12, 2025
Apr 27, 2024
Dec 13, 2024
Mar 3, 2025
Jul 12, 2024
Apr 27, 2024
Jul 8, 2024
Feb 17, 2025
Feb 16, 2025
Apr 27, 2024
Feb 16, 2025
Mar 10, 2025
Mar 10, 2025
Mar 1, 2025
Mar 10, 2025
Feb 16, 2025
Mar 10, 2025

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