161 lines
4.2 KiB
Markdown
161 lines
4.2 KiB
Markdown
|
|
# 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)
|
|||
|
|
|