Files

161 lines
4.2 KiB
Markdown
Raw Permalink Normal View History

# Prerequisites
This document outlines all prerequisites for deploying the Azure Stack HCI infrastructure.
## Hardware Requirements
### Proxmox VE Hosts
- **Minimum**: 2 Proxmox VE hosts
- **Proxmox Version**: 7.0 or higher
- **RAM**: Minimum 8GB per node (16GB+ recommended)
- **Storage**: Sufficient storage for VMs and templates
- **Network**:
- Static IP addresses configured
- Network connectivity between nodes
- Internet access for Azure Arc connectivity
### Optional: Router/Storage Server
If implementing the full Azure Stack HCI architecture:
- Server with multiple PCIe slots
- 4× Spectrum WAN connections
- Storage shelves with HBAs
- Intel QAT 8970 for crypto acceleration
See [Hardware BOM](../architecture/hardware-bom.md) for complete hardware specifications.
## Software Requirements
### Required Tools
- **Azure CLI**: Installed and authenticated
```bash
az login
az account show
```
- **kubectl**: For Kubernetes management
```bash
kubectl version --client
```
- **SSH**: Access to all nodes
- **Terraform** (optional): For Infrastructure as Code
- **Helm** (optional): For GitOps deployments
### Azure Subscription
- Azure subscription with **Contributor** role
- Resource group creation permissions
- Azure Arc enabled subscription
### Network Requirements
- **Static IP addresses** for all nodes
- **DNS resolution** (or hosts file configuration)
- **Outbound HTTPS (443)** for Azure Arc connectivity
- **Cluster communication ports** (5404-5412 UDP) for Proxmox cluster
## Environment Configuration
### Environment Variables
Create a `.env` file from the template:
```bash
cp .env.example .env
```
Required variables:
- **Azure**: `AZURE_SUBSCRIPTION_ID`, `AZURE_TENANT_ID`, `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`
- **Cloudflare**: `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`, `CLOUDFLARE_TUNNEL_TOKEN`
- **Proxmox**: `PVE_ROOT_PASS`, `PROXMOX_ML110_URL`, `PROXMOX_R630_URL`
See `.env.example` for all available configuration options.
### Network Configuration
Ensure the following network ranges are available:
- **VLAN 10**: Storage (10.10.10.0/24)
- **VLAN 20**: Compute (10.10.20.0/24)
- **VLAN 30**: App Tier (10.10.30.0/24)
- **VLAN 40**: Observability (10.10.40.0/24)
- **VLAN 50**: Dev/Test (10.10.50.0/24)
- **VLAN 60**: Management (10.10.60.0/24)
- **VLAN 99**: DMZ (10.10.99.0/24)
See [Network Topology](../architecture/network-topology.md) for detailed network design.
## Pre-Deployment Checklist
Before starting deployment, verify:
- [ ] Proxmox VE installed and updated on all hosts
- [ ] Static IP addresses configured
- [ ] Network connectivity between nodes tested
- [ ] Azure CLI installed and authenticated
- [ ] Azure subscription has Contributor role
- [ ] `.env` file created and configured
- [ ] SSH access to all nodes verified
- [ ] DNS resolution working (or hosts file configured)
- [ ] Outbound HTTPS (443) connectivity verified
- [ ] Sufficient storage available on Proxmox hosts
- [ ] VM IDs planned (avoid conflicts)
## Verification Scripts
Run the prerequisites check script:
```bash
./scripts/utils/prerequisites-check.sh
```
This will verify:
- Proxmox VE installation
- Network configuration
- Azure CLI installation and authentication
- kubectl installation
- Helm installation (optional)
- Docker installation (optional)
- System resources
## Next Steps
After verifying prerequisites:
1. Follow the [Quick Start Guide](quick-start.md)
2. Review the [Deployment Guide](../deployment/deployment-guide.md)
3. Use the [Bring-Up Checklist](../deployment/bring-up-checklist.md)
## Troubleshooting Prerequisites
### Azure CLI Not Authenticated
```bash
az login
az account set --subscription "your-subscription-id"
az account show
```
### Network Connectivity Issues
```bash
# Test connectivity between nodes
ping <node-ip>
ssh <node-ip> "echo 'Connection successful'"
```
### Proxmox Connection Issues
```bash
# Test Proxmox API access
./scripts/utils/test-proxmox-connection.sh
```
### Insufficient Resources
- Check available RAM: `free -h`
- Check available disk space: `df -h`
- Check CPU: `nproc`
## Additional Resources
- [Architecture Overview](../architecture/overview.md)
- [Network Topology](../architecture/network-topology.md)
- [Hardware BOM](../architecture/hardware-bom.md)