homelab-ops-ansible

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

Visit original content creator repository https://github.com/ppat/homelab-ops-ansible

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *