我如何使用开源技术构建我的家庭实验室
2024-07-13
142
欢迎来到我的家庭技术的简单、最重要的部分——我的家庭实验室的引导探索!它有一些细致的设计和味道,证明了开源技术的力量。
出于不同的原因,使用您想要的技术堆栈构建家庭实验室可以证明是有益且有价值的努力:
- 实验和软件测试的理想选择:家庭实验室是试验新技术的更安全的空间。您可以轻松地破坏软件、服务器配置,甚至实际的硬件!
- 作为一种爱好和个人兴趣:对于某些人来说,建立和管理个人家庭实验室的旅程可以满足爱好。它可以是一种更深层次地接触技术、追求个人兴趣、同时享受从头开始构建一切的满足感的方式。
- 概念验证中心:如果不是家庭实验室,您还可以在哪里开发和测试技术相关想法或初创公司的概念验证?家庭实验室需要昂贵的商业资源。
- 用于构建定制解决方案:通过家庭实验室,您可以根据您的特定需求定制技术解决方案,无论是设置家庭安全和监控、用于远程访问的个人 VPN、娱乐媒体服务器、家庭自动化系统、私有云或您的海量数据存储解决方案。
- 学习和培养新技能:家庭实验室提供了学习新技术、尝试不同设置和获得实践经验的实践环境。这是了解网络、服务器管理、虚拟化、容器化、家庭自动化、网络安全和许多其他 IT 相关主题的绝佳方式。
我的家庭实验室网络架构(简单化设计)
家庭实验室的架构将取决于您的具体需求,例如您计划购买的设备,以及您通过实验室要实现的具体目标。这是我的家庭实验室网络的简单设计。
1. 互联网连接
- 这是主要的互联网连接,主要由您的 ISP(互联网服务提供商)提供。
- 它是网络的入口层
- 如果您的家庭实验室很重要,例如外部使用的托管服务,您可以考虑使用辅助/备份互联网连接以实现冗余。
- 我的主要互联网由 Safaricom(肯尼亚电信公司)提供。我计划获得 Starlink 互联网连接,并可能将其用作下行链路的主要连接,并使用 Safaricom 互联网进行远程访问和公开外部服务。
- 我选择 Safaricom Fiber Internet for Business 连接包来获取公共 IP 地址并完全控制我的网络堆栈。
- 路由器配置为桥接模式,使我能够在防火墙/外部路由器中配置公共 IP,而不是由 ISP 控制。
- ISP 路由器负责将流量从内部网络路由到任何外部目的地。
2. 路由器/防火墙
- 我从亚马逊购买了 Protectli Vault 4 端口迷你电脑。您可以单独购买 RAM 和磁盘以获得更好的规格。
- Mini PC 有 4 个端口,为您提供连接方面的灵活性(WAN 或 LAN)
- 然后我在硬件上安装了 pfSense,完整的指南可以在此链接中找到; https://techviewleo.com/install-pfsense-opnsense-on-protectli-vault/
- pfSense 是一款基于 FreeBSD 的免费防火墙和路由器软件
- OPNsense 是 pfSense 的替代品。我根本没有无缘无故地使用它。将来会尝试一下。
- pfSense 配置了许多服务:用于负载平衡的 HAProxy、DHCP 服务(用于为设备分配动态 IP 地址)、用于时间同步的 NTP、Snort(IDS/IPS)、用于远程访问我的家庭实验室的 OpenVPN 和 Tailscale 客户端(网状 VPN:https://computingforgeeks.com/joining-pfsense-to-tailscale-headscale-vpn-mesh/)
- pfSense 上也使用 VLAN 进行网络隔离。我有 4 个活动 VLAN – IOT 设备和设备、访客 WiFi、主 WiFi、服务器和虚拟机。
- 配置防火墙规则以限制 VLAN 间连接。例如,访客 WiFi 只能访问服务器网络 VLAN 中的 DNS 和流量过滤服务。由于各种原因还存在许多其他规则。
3. 开关
- 我使用 UniFi 托管交换机来获得更多控制和配置 VLAN(虚拟 LAN)的能力。
- 主交换机为USW-24-POE以太网交换机
- 我选择以太网供电 (PoE) 交换机,以避免在接入点或任何可通过以太网电缆供电的设备上使用 PoE 注入器。
- 该交换机通过在 Ubuntu 20.04 VM 中运行的 UniFi 控制器(网络应用程序)进行管理:https://computingforgeeks.com/install-unifi-controller-network-application-on-ubuntu/
- 另一个小开关专用于家庭安全
4. 接入点
- 接入点用于扩展现有网络的无线覆盖范围并增加能够连接到该网络的用户数量
- 我拥有两个 Ubiquiti Networks UniFi AP AC LR 接入点 – UAP-AC-LR(24V 无源 PoE 室内、2.4GHz/5GHz、802.11 a/b/g/n/ac、1x 10/100/1000)
- 它们都使用 UniFi 网络应用程序进行管理
- WiFi 接入点映射到 pfSense 中定义并在 UniFi Switch 中配置的 VLAN。
5. 主服务器(或多个服务器):
- 主服务器运行虚拟化软件应用程序(管理程序)
- 类型 2 和类型 1 虚拟机管理程序的混合
- 由于功耗低,我更喜欢家庭实验室使用的迷你 PC 硬件
- 在我的服务器机架中,我有4英特尔 NUC
- 以及 7Lenovo ThinkCentre 硬件。
- 大多数配备 Intel Core i7 CPU、DDR4 RAM 棒和 NVME SSD。
5.1 虚拟化堆栈
- 这是用于创建和管理虚拟环境的软件组件的组合。
- 虚拟化有助于优化 CPU、内存和存储等硬件资源。
- 多个虚拟机可以共享底层物理硬件,从而更有效地利用资源
- 在我的家庭实验室中,我使用各种虚拟化技术,即:
- 基于内核的虚拟机 (KVM) –2 个节点
- Proxmox VE 版本 8 – 2 个节点
- oVirt 在 Rocky Linux 操作系统上运行 – 1 个节点
- XCP-ng 与 Xen Orchestra 用于 UI 管理 – 1 个节点
- OpenStack 部署在 Rocky Linux 上作为基础操作系统。 – 1 个节点
- VMware ESXi 和 vCenter 版本 8 – 3 个节点
- HPE ProLiant DL380 Gen10 服务器非常耗电 – 仅根据需要运行
6. 服务
我在家庭实验室中运行相当多的服务来满足不同的个人需求。我将在这里列出一些:
6.1 Kubernetes集群
- 我的 Kubernetes 集群由 Flatcar Container Linux 作为操作系统提供支持
- 它使用 Kubespray 进行部署和管理
- 具有 Nginx Ingress 和 Traefik Ingress 控制器
- 集群负载均衡器是 MetalLB
- 容器注册中心是Harbor
- 容器存储:Rook
- 云原生证书管理:cert-manager
- 使用 ArgoCD 的 GitOps
- API 访问通过 pfSense 使用 HAProxy 进行
6.2 OpenShift集群
- 在操作系统层由 Fedora CoreOS 提供支持
- 使用 OKD – 为 Red Hat OpenShift 提供支持的 Kubernetes 社区发行版
- 大多数集群和其他应用程序都是使用 Operators 进行 OpenShift 本地部署
- HAProxy 是 OpenShift 节点/API 的负载均衡器
6.3 基础设施管理和自动化
- 服务代理管理:Nginx 代理管理器
- 身份管理和 DNS:FreeIPA
- ISO 安装工具:Ventoy
- 由 Terraform 提供的 IaC
- 使用 AWX 的 Ansible 自动化
- 由 Gitea 提供支持的 Git 服务器
- 现在和普鲁米一起玩
6.4 监控和仪表板
- 普罗米修斯与 Grafana
- Dashy 家庭实验室链接仪表板
- 正常运行时间:Kuma 正常运行时间
6.5 家庭媒体/娱乐
- 果冻
- Plex 媒体服务器
6.6 数据同步
- Syncthing 用于在我的系统/机器之间同步数据。
6.7 广告拦截器
- 皮孔
- 广告卫士主页
6.6 家庭自动化
- 智能家居自动化:家庭助理
- 物联网平台:ThingsBoard(正在进行中)
6.7 安全
- SIEM:AlienVault OSSIM
- 密码管理:Bitwarden
- 入侵检测/预防:Snort IDS
6.8 日志记录
- 部署了 Graylog 和 Grafana Loki。我根据应用程序需求和适用性进行切换。
- 日志分析器:GoAccess
6.9 未来的软件实现(正在酝酿中;尚未实现)
- CCTV NVR:护卫舰NVR
- 具有可选 HTTP/S、FTP/S 和 WebDAV 的 SFTP 服务器:Sftpgo
- 操作系统存储库同步:Katello 和 Foreman
- 个人财务管家:Firefly III
- 网站分析:Plainible Analytics 或 Matomo
- 访问和远程桌面:Teleport 和 Rustdesk
- 附加网络路由器/防火墙:Sophos Firewall Home Edition
- SSO:奥瑟莉亚
- 跳转服务器(如果需要):Jumpserver
- 照片:光棱镜
- 家庭 VoIP:Asterisk 和 FreePBX
一些安装链接:
- https://computingforgeeks.com/creating-ubuntu-and-debian-os-template-on-proxmox-ve/
- https://computingforgeeks.com/install-proxmox-ve-on-debian-12-bookworm/
- https://computingforgeeks.com/deploy-product-kubernetes-cluster-with-ansible/
- https://computingforgeeks.com/how-to-deploy-openshift-container-platform-on-kvm/
- https://computingforgeeks.com/run-ansible-awx-on-kubernetes-openshift-cluster/
- https://computingforgeeks.com/install-configure-traefik-ingress-controller-on-kubernetes/
- https://computingforgeeks.com/deploy-nginx-ingress-controller-on-kubernetes-using-helm-chart/
- https://computingforgeeks.com/deploy-metalb-load-balancer-on-kubernetes/
- https://computingforgeeks.com/how-to-deploy-rook-ceph-storage-on-kubernetes-cluster/
- https://computingforgeeks.com/install-freeipa-server-on-rocky-almalinux/
- https://computingforgeeks.com/deploy-multi-node-okd-cluster-using-fedora-coreos/
- https://computingforgeeks.com/deploy-xen-orchestra-appliance-on-xen-xcp-ng/
- https://computingforgeeks.com/install-xen-orchestra-on-ubuntu-debian-linux/
- https://computingforgeeks.com/how-to-install-ovirt-engine-on-rocky-almalinux/
- https://computingforgeeks.com/installing-xcp-ng-virtualization-platform-steps-with-screenshots/
- 以及更多信息,请访问computingforgeeks.com 和 techviewleo.com
更新于:6个月前
赞一波!2
相关文章
- 【说站】python如何使用skimage包提取图像
- 【说站】php文件Hash如何使用
- 【说站】Python类属性如何使用
- 基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础
- BotSharp 基于 .NET 平台的开源 AI 聊天机器人框架
- 【说站】python中popitem如何使用
- 【说站】python中isnumeric如何使用
- 【说站】python casefold()方法如何使用
- 【说站】python轮盘赌算法如何使用
- 【说站】python中marshmallow库如何使用
- 【说站】python析构函数如何使用
- 小米开源智能家居平台 ha_xiaomi_home 使用示例
- 【说站】python pyglet模块如何使用
- 【说站】python字符串方法format()如何使用
- 【说站】css中fraction如何使用
- 【说站】js变量的作用域如何使用
- 【说站】python zip_longest如何使用
- 【说站】python阻塞调度如何使用
- 【说站】python if三元表达式如何使用
- 【说站】python事件循环如何使用?
文章评论
评论问答