Go to file
2026-07-08 05:31:18 +00:00
.devcontainer Move .devcontainer folder to root 2026-07-02 23:53:41 +09:00
.gitea/workflows Deploy a dashboard monitor for the entire server 2026-07-08 05:15:34 +00:00
.vscode Change some settings 2026-07-08 05:15:42 +00:00
ansible Fix remaining variable quoting and IP address typos 2026-07-08 05:28:46 +00:00
docs Fix typo within mermaid graph 2026-07-08 05:31:18 +00:00
terraform Implement FreeIPA server and enroll the pre-existing servers to it 2026-07-07 05:53:19 +00:00
website Deploy a dashboard monitor for the entire server 2026-07-08 05:15:34 +00:00
README.md Document the troubleshooting and deployment of self-hosted gitea server 2026-07-08 00:15:55 +09:00

Enterprise Hybird IaC Homelab: RHEL 10, KVM, Terraform & Ansible

An enterprise-grade, multi-tier virtualization homelab simulating a modern private cloud deployment. This project demonstrates Infrastructure as Code (IaC) provisioning and configuration management on a bare-metal Red Hat Enterprise Linux (RHEL) 10 hypervisor.


1. Project Purpose & Engineering Goals

In modern enterprise IT, infrastructure is no longer managed manually. The shift toward Cloud Native and DevSecOps models requires systems engineers to manage physical and virtual environments dynamically, safely, and repeatably.

The primary object of this project is to build a fully automated private cloud environment from a bare-metal baseline, demonstrating:

  • Declarative Infrastructure: Deploying virutal machines in a reproducible state using Terraform.
  • Immutable Configuration: Utilizing containerized Ansible Execution Environments to push OS settings, security updates, and packages.
  • DevSecOps Best Practice: Protecting system secrets (licenses, access credentials) using advanced AES-256 encryption.
  • System Architecture Design: Bridging physical and virtual network interfaces to allow guests to act as first-class citizens on the LAN.

2. Infrastructure Architecture

This lab runs on a dedicated physical BOSGAME P3 Lite Mini PC acting as out bare-metal hypervisor, controlled remotely from a development laptop.

graph TD
    Laptop[Laptop: Nobara Linux] -- SSH/IaC Control --o Hypervisor[Hypervisor Host: RHEL 10]

    subgraph host ["Hypervisor Host (172.30.1.10)"]
        Bridge[Physical Bridge: br0]
        KVM[KVM / QEMU Hypervisor]
        VM1[ansible-control<br>172.30.1.200]
        VM2[web-portfolio<br>172.30.1.201]
        VM3[media-stream<br>172.30.1.202]

        Bridge --- VM1
        Bridge --- VM2
        Bridge --- VM3
    end

    subgraph workspace ["Dev Workspace (Development)"]
        DevContainer[VS Code Dev Container<br>registry.redhat.io/ansible-automation-platform-25/ansible-dev-tools-rhel8:latest]
        DevContainer -- Ansible Navigator --o VM1
        DevContainer -- Ansible Navigator --o VM2
        DevContainer -- Ansible Navigator --o VM3
    end

3. Project Documentation

To make this project easily readable, the documentation has been divided into detailed technical chapters. Click any link below to dive into specific design decisions and troubleshooting logs:

Hypervisor Setup

Terraform Provisioning

Ansible Automation

Music Streaming Service

Homelab Portal Website

Centralized Identity Management

Private Git Server and GitOps Automation

// Include links and their pages