# Next Steps - Azure Stack HCI Deployment ## ✅ Completed - [x] Environment configuration (`.env` file setup) - [x] Proxmox credential structure (best practices with `PVE_ROOT_PASS`) - [x] Connection testing script created and verified - [x] Both Proxmox servers tested and accessible: - HPE ML110 Gen9: `192.168.1.206:8006` ✓ - Dell R630: `192.168.1.49:8006` ✓ - [x] Documentation updated with security best practices ## 🎯 Immediate Next Steps (Priority Order) ### 1. Complete Environment Configuration **Status**: Partially complete - Proxmox configured, Azure/Cloudflare pending ```bash # Edit .env file and configure remaining credentials nano .env # or use your preferred editor ``` **Required:** - [ ] `AZURE_SUBSCRIPTION_ID` - Get from: `az account show --query id -o tsv` - [ ] `AZURE_TENANT_ID` - Get from: `az account show --query tenantId -o tsv` - [ ] `AZURE_RESOURCE_GROUP` - Set to: `HC-Stack` (or your preferred name) - [ ] `AZURE_LOCATION` - Set to: `eastus` (or your preferred region) - [ ] `CLOUDFLARE_API_TOKEN` - Create at: https://dash.cloudflare.com/profile/api-tokens - [ ] `CLOUDFLARE_ACCOUNT_EMAIL` - Your Cloudflare account email **Verify configuration:** ```bash # Test Proxmox connections (already working) ./scripts/utils/test-proxmox-connection.sh # Test Azure CLI connection az account show # Verify environment variables loaded source <(grep -v '^#' .env | grep -v '^$' | sed 's/#.*$//' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | grep '=') echo "Azure Subscription: $AZURE_SUBSCRIPTION_ID" echo "Azure Tenant: $AZURE_TENANT_ID" ``` ### 2. Azure Prerequisites Setup **Create Azure Resource Group:** ```bash # Load environment variables source <(grep -v '^#' .env | grep -v '^$' | sed 's/#.*$//' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | grep '=') # Login to Azure az login # Set subscription az account set --subscription "$AZURE_SUBSCRIPTION_ID" # Create resource group az group create \ --name "$AZURE_RESOURCE_GROUP" \ --location "$AZURE_LOCATION" # Verify az group show --name "$AZURE_RESOURCE_GROUP" ``` **Verify Azure CLI:** ```bash # Check prerequisites ./scripts/utils/prerequisites-check.sh ``` ### 3. Proxmox Cluster Configuration **Current Status**: Both servers are accessible but may not be clustered yet. **Option A: If servers are already clustered:** ```bash # Verify cluster status (run on one of the Proxmox hosts) pvecm status pvecm nodes ``` **Option B: If servers need to be clustered:** **On ML110 (192.168.1.206):** ```bash # SSH to the server ssh root@192.168.1.206 # Configure network (if needed) export NODE_IP=192.168.1.206 export NODE_GATEWAY=192.168.1.254 # Adjust based on your network export NODE_HOSTNAME=pve-ml110 # Run configuration scripts (if available) # ./infrastructure/proxmox/network-config.sh # ./infrastructure/proxmox/cluster-setup.sh ``` **On R630 (192.168.1.49):** ```bash # SSH to the server ssh root@192.168.1.49 # Configure network (if needed) export NODE_IP=192.168.1.49 export NODE_GATEWAY=192.168.1.254 # Adjust based on your network export NODE_HOSTNAME=pve-r630 export CLUSTER_NODE_IP=192.168.1.206 # Run configuration scripts (if available) # ./infrastructure/proxmox/network-config.sh # export NODE_ROLE=join # ./infrastructure/proxmox/cluster-setup.sh ``` **Verify cluster:** ```bash # From either Proxmox host pvecm status pvecm nodes ``` ### 4. Azure Arc Onboarding **Onboard Proxmox Hosts to Azure Arc:** **On ML110:** ```bash # SSH to ML110 ssh root@192.168.1.206 # Load environment variables (copy .env or set manually) export RESOURCE_GROUP="${AZURE_RESOURCE_GROUP:-HC-Stack}" export TENANT_ID="${AZURE_TENANT_ID}" export SUBSCRIPTION_ID="${AZURE_SUBSCRIPTION_ID}" export LOCATION="${AZURE_LOCATION:-eastus}" export TAGS="type=proxmox,host=ml110" # Run onboarding script ./scripts/azure-arc/onboard-proxmox-hosts.sh ``` **On R630:** ```bash # SSH to R630 ssh root@192.168.1.49 # Load environment variables export RESOURCE_GROUP="${AZURE_RESOURCE_GROUP:-HC-Stack}" export TENANT_ID="${AZURE_TENANT_ID}" export SUBSCRIPTION_ID="${AZURE_SUBSCRIPTION_ID}" export LOCATION="${AZURE_LOCATION:-eastus}" export TAGS="type=proxmox,host=r630" # Run onboarding script ./scripts/azure-arc/onboard-proxmox-hosts.sh ``` **Verify in Azure Portal:** - Navigate to: Azure Portal → Azure Arc → Servers - Both Proxmox hosts should appear as "Connected" ### 5. Create Service VMs **Using Terraform (Recommended):** ```bash cd terraform/proxmox # Create terraform.tfvars cat > terraform.tfvars <