Hosting
Azure
Stel met de Azure CLI een virtuele Azure Linux-machine in, pas beveiliging voor de Network Security Group (NSG) toe, configureer Azure Bastion voor SSH-toegang en installeer OpenClaw.
Wat u gaat doen
- Azure-netwerkvoorzieningen (VNet, subnetten, NSG) en rekenresources maken met de Azure CLI
- NSG-regels toepassen zodat SSH naar de VM alleen vanaf Azure Bastion is toegestaan
- Azure Bastion gebruiken voor SSH-toegang (geen openbaar IP-adres op de VM)
- OpenClaw installeren met het installatiescript
- De Gateway verifiëren
Wat u nodig hebt
- Een Azure-abonnement met toestemming om reken- en netwerkresources te maken
- Een geïnstalleerde Azure CLI (zie Installatiestappen voor Azure CLI)
- Een SSH-sleutelpaar (deze handleiding behandelt hoe u er zo nodig een genereert)
- Ongeveer 20-30 minuten
Implementatie configureren
Aanmelden bij Azure CLI
az loginaz extension add -n sshDe extensie ssh is vereist voor systeemeigen SSH-tunneling via Azure Bastion.
Vereiste resourceproviders registreren (eenmalig)
az provider register --namespace Microsoft.Computeaz provider register --namespace Microsoft.NetworkControleer de registratie en wacht totdat beide Registered weergeven.
az provider show --namespace Microsoft.Compute --query registrationState -o tsvaz provider show --namespace Microsoft.Network --query registrationState -o tsvImplementatievariabelen instellen
RG="rg-openclaw"LOCATION="westus2"VNET_NAME="vnet-openclaw"VNET_PREFIX="10.40.0.0/16"VM_SUBNET_NAME="snet-openclaw-vm"VM_SUBNET_PREFIX="10.40.2.0/24"BASTION_SUBNET_PREFIX="10.40.1.0/26"NSG_NAME="nsg-openclaw-vm"VM_NAME="vm-openclaw"ADMIN_USERNAME="openclaw"BASTION_NAME="bas-openclaw"BASTION_PIP_NAME="pip-openclaw-bastion"Pas de namen en CIDR-bereiken aan uw omgeving aan. Het Bastion-subnet moet ten minste /26 zijn.
Een SSH-sleutel selecteren
Gebruik uw bestaande openbare sleutel als u die hebt:
SSH_PUB_KEY="$(cat ~/.ssh/id_ed25519.pub)"Genereer anders een nieuwe:
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519 -C "you@example.com"SSH_PUB_KEY="$(cat ~/.ssh/id_ed25519.pub)"VM-grootte en grootte van de besturingssysteemschijf selecteren
VM_SIZE="Standard_B2as_v2"OS_DISK_SIZE_GB=64- Begin kleiner voor licht gebruik en schaal later op.
- Gebruik meer vCPU, RAM en schijfruimte voor zwaardere automatisering, meer kanalen of grotere model- en toolwerklasten.
- Als een grootte niet beschikbaar is in uw regio of binnen het quotum van uw abonnement, kiest u de meest vergelijkbare beschikbare SKU.
Geef de beschikbare VM-grootten in uw doelregio weer:
az vm list-skus --location "${LOCATION}" --resource-type virtualMachines -o tableControleer uw huidige vCPU- en schijfgebruik en -quotum:
az vm list-usage --location "${LOCATION}" -o tableAzure-resources implementeren
De resourcegroep maken
az group create -n "${RG}" -l "${LOCATION}"De netwerkbeveiligingsgroep maken
Maak de NSG en voeg regels toe zodat alleen het Bastion-subnet via SSH verbinding met de VM kan maken.
az network nsg create \ -g "${RG}" -n "${NSG_NAME}" -l "${LOCATION}" # Allow SSH from the Bastion subnet onlyaz network nsg rule create \ -g "${RG}" --nsg-name "${NSG_NAME}" \ -n AllowSshFromBastionSubnet --priority 100 \ --access Allow --direction Inbound --protocol Tcp \ --source-address-prefixes "${BASTION_SUBNET_PREFIX}" \ --destination-port-ranges 22 # Deny SSH from the public internetaz network nsg rule create \ -g "${RG}" --nsg-name "${NSG_NAME}" \ -n DenyInternetSsh --priority 110 \ --access Deny --direction Inbound --protocol Tcp \ --source-address-prefixes Internet \ --destination-port-ranges 22 # Deny SSH from other VNet sourcesaz network nsg rule create \ -g "${RG}" --nsg-name "${NSG_NAME}" \ -n DenyVnetSsh --priority 120 \ --access Deny --direction Inbound --protocol Tcp \ --source-address-prefixes VirtualNetwork \ --destination-port-ranges 22Regels worden op prioriteit geëvalueerd, met het laagste nummer eerst: Bastion-verkeer wordt bij 100 toegestaan, waarna al het overige SSH-verkeer bij 110 en 120 wordt geblokkeerd.
Het virtuele netwerk en de subnetten maken
Maak het VNet met het VM-subnet (waaraan de NSG is gekoppeld) en voeg vervolgens het Bastion-subnet toe.
az network vnet create \ -g "${RG}" -n "${VNET_NAME}" -l "${LOCATION}" \ --address-prefixes "${VNET_PREFIX}" \ --subnet-name "${VM_SUBNET_NAME}" \ --subnet-prefixes "${VM_SUBNET_PREFIX}" # Attach the NSG to the VM subnetaz network vnet subnet update \ -g "${RG}" --vnet-name "${VNET_NAME}" \ -n "${VM_SUBNET_NAME}" --nsg "${NSG_NAME}" # AzureBastionSubnet: this exact name is required by Azureaz network vnet subnet create \ -g "${RG}" --vnet-name "${VNET_NAME}" \ -n AzureBastionSubnet \ --address-prefixes "${BASTION_SUBNET_PREFIX}"De VM maken
De VM krijgt geen openbaar IP-adres. SSH-toegang verloopt uitsluitend via Azure Bastion.
az vm create \ -g "${RG}" -n "${VM_NAME}" -l "${LOCATION}" \ --image "Canonical:ubuntu-24_04-lts:server:latest" \ --size "${VM_SIZE}" \ --os-disk-size-gb "${OS_DISK_SIZE_GB}" \ --storage-sku StandardSSD_LRS \ --admin-username "${ADMIN_USERNAME}" \ --ssh-key-values "${SSH_PUB_KEY}" \ --vnet-name "${VNET_NAME}" \ --subnet "${VM_SUBNET_NAME}" \ --public-ip-address "" \ --nsg ""--public-ip-address "" voorkomt dat een openbaar IP-adres wordt toegewezen. --nsg "" slaat een NSG per NIC over, omdat de NSG op subnetniveau de beveiliging al afhandelt.
Als u een specifieke versie van een Ubuntu-installatiekopie wilt vastzetten in plaats van latest, geeft u eerst de beschikbare versies weer:
az vm image list \ --publisher Canonical --offer ubuntu-24_04-lts \ --sku server --all -o tableAzure Bastion maken
Azure Bastion biedt beheerde SSH-toegang zonder een openbaar IP-adres op de VM beschikbaar te stellen. De Standard-SKU met ingeschakelde tunneling is vereist voor het op de CLI gebaseerde az network bastion ssh.
az network public-ip create \ -g "${RG}" -n "${BASTION_PIP_NAME}" -l "${LOCATION}" \ --sku Standard --allocation-method Static az network bastion create \ -g "${RG}" -n "${BASTION_NAME}" -l "${LOCATION}" \ --vnet-name "${VNET_NAME}" \ --public-ip-address "${BASTION_PIP_NAME}" \ --sku Standard --enable-tunneling trueHet inrichten van Bastion duurt doorgaans 5-10 minuten, maar kan in sommige regio's tot 15-30 minuten duren.
OpenClaw installeren
Via Azure Bastion met SSH verbinding maken met de VM
VM_ID="$(az vm show -g "${RG}" -n "${VM_NAME}" --query id -o tsv)" az network bastion ssh \ --name "${BASTION_NAME}" \ --resource-group "${RG}" \ --target-resource-id "${VM_ID}" \ --auth-type ssh-key \ --username "${ADMIN_USERNAME}" \ --ssh-key ~/.ssh/id_ed25519OpenClaw installeren (in de VM-shell)
curl -fsSL https://openclaw.ai/install.sh -o /tmp/install.shbash /tmp/install.shrm -f /tmp/install.shHet installatieprogramma installeert Node en afhankelijkheden als die nog niet aanwezig zijn, installeert OpenClaw en start de initiële configuratie. Zie Installatie voor details.
De Gateway verifiëren
Nadat de initiële configuratie is voltooid:
openclaw gateway statusAls uw organisatie al GitHub Copilot-licenties heeft, kunt u tijdens de initiële configuratie de GitHub Copilot-provider kiezen in plaats van een afzonderlijke API-sleutel voor het model. Zie GitHub Copilot-provider.
Kostenoverwegingen
Geschatte maandelijkse kosten (controleer de actuele prijzen in de Azure-prijscalculator, omdat tarieven per regio verschillen en in de loop van de tijd veranderen):
- Azure Bastion Standard-SKU: ongeveer $140 per maand
- VM (
Standard_B2as_v2): ongeveer $55 per maand
Om kosten te verlagen:
-
Maak de toewijzing van de VM ongedaan wanneer deze niet wordt gebruikt. Hierdoor stopt de facturering voor rekenkracht (schijfkosten blijven gelden). De Gateway is niet bereikbaar zolang de toewijzing ongedaan is gemaakt.
bash az vm deallocate -g "${RG}" -n "${VM_NAME}"az vm start -g "${RG}" -n "${VM_NAME}" # restart later -
Verwijder Bastion wanneer u het niet nodig hebt en maak het opnieuw wanneer u weer SSH-toegang nodig hebt; het is de grootste kostenpost en wordt binnen enkele minuten ingericht.
-
Gebruik de Basic-SKU van Bastion (ongeveer $38 per maand) als u alleen SSH via de portal nodig hebt en geen CLI-tunneling (
az network bastion ssh) nodig hebt.
Opschonen
Verwijder alle resources die met deze handleiding zijn gemaakt:
az group delete -n "${RG}" --yes --no-waitHiermee worden de resourcegroep en alles daarin verwijderd (VM, VNet, NSG, Bastion en openbaar IP-adres).
Volgende stappen
- Berichtenkanalen instellen: Kanalen
- Lokale apparaten als Nodes koppelen: Nodes
- De Gateway configureren: Gateway-configuratie
- Meer informatie over Azure-implementatie met de GitHub Copilot-modelprovider: OpenClaw in Azure met GitHub Copilot