- Estrutura Terraform para ER605/Omada - Ansible inventory e role base para Dockerino - Docker Compose files para todos os serviços do Dockerino - Docker Compose para Media stack (Jellyfin, Sonarr, Radarr, etc) - Documentação ARCHITECTURE.md e NEXT_STEPS.md (via Héstia)
119 lines
3.0 KiB
HCL
119 lines
3.0 KiB
HCL
# Terraform configuration for TP-Link ER605 Router via Omada Controller
|
|
# Router: TP-Link ER605 (Omada Controller on dockerino:8043)
|
|
|
|
terraform {
|
|
required_version = ">= 1.0"
|
|
|
|
required_providers {
|
|
omada = {
|
|
source = "jkbo/RF-omada"
|
|
version = "~> 1.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "omada" {
|
|
omada_url = var.omada_url
|
|
omada_username = var.omada_username
|
|
omada_password = var.omada_password
|
|
ssl_verify = var.ssl_verify
|
|
}
|
|
|
|
# Data sources to get existing network info
|
|
data "omada_networks" "homelab" {
|
|
site_name = var.site_name
|
|
}
|
|
|
|
# VLAN 1 - Infraestrutura (10.0.0.0/24)
|
|
resource "omada_network" "vlan1_infra" {
|
|
site_name = var.site_name
|
|
name = "VLAN1-INFRA"
|
|
purpose = "Management"
|
|
type = "L3"
|
|
subnet = "10.0.0.0/24"
|
|
gateway_ip = "10.0.0.1"
|
|
vlan_id = 1
|
|
dhcp_relay_enabled = false
|
|
}
|
|
|
|
# VLAN 10 - Geral (10.0.10.0/24)
|
|
resource "omada_network" "vlan10_geral" {
|
|
site_name = var.site_name
|
|
name = "VLAN10-GERAL"
|
|
purpose = "Corporate"
|
|
type = "L3"
|
|
subnet = "10.0.10.0/24"
|
|
gateway_ip = "10.0.10.1"
|
|
vlan_id = 10
|
|
dhcp_relay_enabled = false
|
|
}
|
|
|
|
# VLAN 20 - IOT (10.0.20.0/24)
|
|
resource "omada_network" "vlan20_iot" {
|
|
site_name = var.site_name
|
|
name = "VLAN20-IOT"
|
|
purpose = "Corporate"
|
|
type = "L3"
|
|
subnet = "10.0.20.0/24"
|
|
gateway_ip = "10.0.20.1"
|
|
vlan_id = 20
|
|
dhcp_relay_enabled = false
|
|
}
|
|
|
|
# VLAN 30 - Guests (10.0.30.0/24)
|
|
resource "omada_network" "vlan30_guests" {
|
|
site_name = var.site_name
|
|
name = "VLAN30-GUESTS"
|
|
purpose = "Guest"
|
|
type = "L3"
|
|
subnet = "10.0.30.0/24"
|
|
gateway_ip = "10.0.30.1"
|
|
vlan_id = 30
|
|
dhcp_relay_enabled = false
|
|
}
|
|
|
|
# DHCP Static Leases (examples)
|
|
# Add static DHCP entries for known devices
|
|
resource "omada_dhcp_static" "truenas" {
|
|
site_name = var.site_name
|
|
network_id = omada_network.vlan1_infra.id
|
|
mac_address = var.truenas_mac
|
|
ip_address = "10.0.0.30"
|
|
hostname = "truenas"
|
|
}
|
|
|
|
resource "omada_dhcp_static" "proxmox" {
|
|
site_name = var.site_name
|
|
network_id = omada_network.vlan1_infra.id
|
|
mac_address = var.proxmox_mac
|
|
ip_address = "10.0.0.20"
|
|
hostname = "proxmox"
|
|
}
|
|
|
|
resource "omada_dhcp_static" "dockerino" {
|
|
site_name = var.site_name
|
|
network_id = omada_network.vlan1_infra.id
|
|
mac_address = var.dockerino_mac
|
|
ip_address = "10.0.0.50"
|
|
hostname = "dockerino"
|
|
}
|
|
|
|
resource "omada_dhcp_static" "media" {
|
|
site_name = var.site_name
|
|
network_id = omada_network.vlan1_infra.id
|
|
mac_address = var.media_mac
|
|
ip_address = "10.0.0.36"
|
|
hostname = "media"
|
|
}
|
|
|
|
resource "omada_dhcp_static" "homeassistant" {
|
|
site_name = var.site_name
|
|
network_id = omada_network.vlan1_infra.id
|
|
mac_address = var.homeassistant_mac
|
|
ip_address = "10.0.0.100"
|
|
hostname = "homeassistant"
|
|
}
|
|
|
|
# DNS routes for internal resolution
|
|
# *.hackerfortress.cc -> 10.0.0.50 (dockerino/NPM)
|