Files
Sankofa/infrastructure/omada/README.md
defiQUG 9daf1fd378 Apply Composer changes: comprehensive API updates, migrations, middleware, and infrastructure improvements
- Add comprehensive database migrations (001-024) for schema evolution
- Enhance API schema with expanded type definitions and resolvers
- Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth
- Implement new services: AI optimization, billing, blockchain, compliance, marketplace
- Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage)
- Update Crossplane provider with enhanced VM management capabilities
- Add comprehensive test suite for API endpoints and services
- Update frontend components with improved GraphQL subscriptions and real-time updates
- Enhance security configurations and headers (CSP, CORS, etc.)
- Update documentation and configuration files
- Add new CI/CD workflows and validation scripts
- Implement design system improvements and UI enhancements
2025-12-12 18:01:35 -08:00

336 lines
6.4 KiB
Markdown

# TP-Link Omada Management
Comprehensive management tools and integrations for TP-Link Omada SDN (Software-Defined Networking) infrastructure.
## Overview
TP-Link Omada provides centralized management of network infrastructure including access points, switches, and gateways. This directory contains management components for integrating Omada into the Sankofa Phoenix infrastructure.
## Components
### API Client (`api/`)
Omada Controller API client library for:
- Controller authentication and session management
- Site and device management
- Access point configuration
- Network policy management
- Client device tracking
- Analytics and monitoring
### Terraform (`terraform/`)
Terraform provider/modules for:
- Omada Controller configuration
- Site provisioning
- Access point deployment
- Network policy as code
- SSID management
### Ansible (`ansible/`)
Ansible roles and playbooks for:
- Omada Controller deployment
- Access point provisioning
- Network policy configuration
- Firmware management
- Configuration backup
### Scripts (`scripts/`)
Management scripts for:
- Controller health checks
- Device discovery
- Configuration backup/restore
- Firmware updates
- Network analytics
## Omada Controller Integration
### Architecture
```
Omada Controller (Centralized)
├── Sites (Physical Locations)
│ ├── Access Points
│ ├── Switches
│ ├── Gateways
│ └── Network Policies
└── Global Settings
├── SSID Templates
├── Network Policies
└── User Groups
```
### Controller Setup
```bash
# Setup Omada Controller
./scripts/setup-controller.sh \
--controller omada.sankofa.nexus \
--admin admin \
--password secure-password
```
### Site Configuration
```bash
# Add a new site
./scripts/add-site.sh \
--site us-east-1 \
--name "US East Datacenter" \
--timezone "America/New_York"
```
## Usage
### Access Point Management
```bash
# Discover access points
./scripts/discover-aps.sh --site us-east-1
# Provision access point
./scripts/provision-ap.sh \
--site us-east-1 \
--ap "AP-01" \
--mac "aa:bb:cc:dd:ee:ff" \
--name "AP-Lobby-01"
# Configure access point
./scripts/configure-ap.sh \
--ap "AP-Lobby-01" \
--radio 2.4GHz \
--channel auto \
--power high
```
### SSID Management
```bash
# Create SSID
./scripts/create-ssid.sh \
--site us-east-1 \
--name "Sankofa-Employee" \
--security wpa3 \
--vlan 100
# Assign SSID to access point
./scripts/assign-ssid.sh \
--ap "AP-Lobby-01" \
--ssid "Sankofa-Employee" \
--radio 2.4GHz,5GHz
```
### Network Policies
```bash
# Create network policy
./scripts/create-policy.sh \
--site us-east-1 \
--name "Guest-Policy" \
--bandwidth-limit 10Mbps \
--vlan 200
# Apply policy to SSID
./scripts/apply-policy.sh \
--ssid "Sankofa-Guest" \
--policy "Guest-Policy"
```
### Ansible Deployment
```bash
# Deploy Omada configuration
cd ansible
ansible-playbook -i inventory.yml omada-deployment.yml \
-e controller=omada.sankofa.nexus \
-e site=us-east-1
```
### Terraform
```bash
# Provision Omada infrastructure
cd terraform
terraform init
terraform plan -var="controller=omada.sankofa.nexus"
terraform apply
```
## API Client Usage
### Python Example
```python
from omada_api import OmadaController
# Connect to controller
controller = OmadaController(
host="omada.sankofa.nexus",
username="admin",
password="secure-password"
)
# Get sites
sites = controller.get_sites()
# Get access points for a site
aps = controller.get_access_points(site_id="us-east-1")
# Configure access point
controller.configure_ap(
ap_id="ap-123",
name="AP-Lobby-01",
radio_config={
"2.4GHz": {"channel": "auto", "power": "high"},
"5GHz": {"channel": "auto", "power": "high"}
}
)
```
### Go Example
```go
package main
import (
"github.com/sankofa/omada-api"
)
func main() {
client := omada.NewClient("omada.sankofa.nexus", "admin", "secure-password")
sites, err := client.GetSites()
if err != nil {
log.Fatal(err)
}
aps, err := client.GetAccessPoints("us-east-1")
if err != nil {
log.Fatal(err)
}
}
```
## Configuration
### Controller Configuration
```yaml
controller:
host: omada.sankofa.nexus
port: 8043
username: admin
password: ${OMADA_PASSWORD}
verify_ssl: true
sites:
- id: us-east-1
name: US East Datacenter
timezone: America/New_York
aps:
- name: AP-Lobby-01
mac: aa:bb:cc:dd:ee:ff
location: Lobby
- name: AP-Office-01
mac: aa:bb:cc:dd:ee:ff
location: Office
```
### Network Policies
```yaml
policies:
- name: Employee-Policy
bandwidth_limit: unlimited
vlan: 100
firewall_rules:
- allow: [80, 443, 22]
- block: [all]
- name: Guest-Policy
bandwidth_limit: 10Mbps
vlan: 200
firewall_rules:
- allow: [80, 443]
- block: [all]
```
## Monitoring
Omada monitoring integrates with Prometheus:
- **omada_exporter**: Prometheus metrics exporter
- **Grafana Dashboards**: Pre-built dashboards for Omada
- **Alerts**: Alert rules for network health
See [Monitoring](../monitoring/README.md) for details.
## Security
- Controller authentication via username/password or API key
- TLS/SSL for all API communications
- Network isolation via VLANs
- Client device authentication
- Regular firmware updates
## Backup and Recovery
### Configuration Backup
```bash
# Backup Omada configuration
./scripts/backup-config.sh \
--controller omada.sankofa.nexus \
--output backup-$(date +%Y%m%d).json
```
### Configuration Restore
```bash
# Restore Omada configuration
./scripts/restore-config.sh \
--controller omada.sankofa.nexus \
--backup backup-20240101.json
```
## Firmware Management
```bash
# Check firmware versions
./scripts/check-firmware.sh --site us-east-1
# Update firmware
./scripts/update-firmware.sh \
--site us-east-1 \
--ap "AP-Lobby-01" \
--firmware firmware-v1.2.3.bin
```
## Troubleshooting
### Common Issues
**Controller connectivity:**
```bash
./scripts/test-controller.sh --controller omada.sankofa.nexus
```
**Access point offline:**
```bash
./scripts/diagnose-ap.sh --ap "AP-Lobby-01"
```
**Network performance:**
```bash
./scripts/analyze-network.sh --site us-east-1
```
## Related Documentation
- [Network Management](../network/README.md)
- [System Architecture](../../docs/system_architecture.md)
- [Infrastructure Management](../README.md)