2 KiB
2 KiB
LoopAware Infrastructure CLI
A professional Python-based CLI for programmatically managing the LoopAware flat network (10.32.0.0/16).
Features
- DNS/DHCP: Manage
dnsmasqreservations and records onla-dnsmasq-01. - Ingress: Dynamic HAProxy routing for subdomains.
- Router: Manage OpenWrt firewall DNAT rules (TCP/UDP).
- Proxmox: Provision and manage LXC containers across physical nodes (
vmh-07tovmh-13). - Samba: Automated User and Group management for Active Directory.
Installation
cd external/dynamic-infra-tooling
pip install -e .
Configuration
The CLI requires a config.yaml file. A template is provided in config.yaml.example.
cp config.yaml.example config.yaml
# Update the nodes, IPs, and SSH key paths
Environment Variables
ROUTER_PASS: Required for router operations (if SSH keys are not deployed).INFRA_CONFIG: Optional path to a custom config file.
Usage Guide
1. Identity & Access (Samba)
# List all users
infra samba list-users
# Create a new user
infra samba add-user "jdoe" "SecurePass123!"
# Grant XMPP access
infra samba add-to-group "xmpp-users" "jdoe"
2. Compute (Proxmox)
# List containers on a specific node
infra proxmox list-lxcs --node la-vmh-12
# Create a new container
infra proxmox create-lxc 12150 local:vztmpl/debian-13-standard "new-app" "10.32.70.100/16" "10.32.0.1" --node la-vmh-12
3. Networking (DNS & DHCP)
# Register the new machine in DHCP
infra dns add-host "aa:bb:cc:dd:ee:ff" "10.32.70.100" "new-app"
# Add a custom DNS record
infra dns add-dns "api.loopaware.com" "10.32.70.100"
4. Public Ingress (HAProxy)
# Expose the service to the internet
infra ingress add "app.loopaware.com" "10.32.70.100" 80
Advanced Workflows for AI Agents
For detailed automation workflows, see Workflow Documentation.
Development and Testing
Run the integration test suite:
export ROUTER_PASS="..."
pytest tests/test_cli.py -s