OpenClaw na Microsoft Azure
Ten poradnik opisuje wdrożenie OpenClaw na maszynie wirtualnej Azure z systemem Linux, z hardeniongiem sieci i zarządzanym dostępem SSH przez Azure Bastion.
Wymagania wstępne
- Subskrypcja Azure z uprawnieniami do tworzenia zasobów obliczeniowych i sieciowych.
- Zainstalowane Azure CLI (
az). - Para kluczy SSH — wygeneruj, jeśli nie posiadasz:
ssh-keygen -t ed25519. - Około 20–30 minut na konfigurację.
Architektura wdrożenia
Konfiguracja obejmuje:
- Resource Group — logiczny kontener na wszystkie zasoby.
- Virtual Network — sieć z zakresem CIDR 10.40.0.0/16.
- Podsieć VM — dla maszyny wirtualnej.
- Podsieć Bastion — dedykowana podsieć dla Azure Bastion.
- NSG (Network Security Group) — restrykcyjne reguły bezpieczeństwa.
- Maszyna wirtualna — Standard_B2as_v2 z Ubuntu 24.04 LTS i dyskiem 64 GB.
- Azure Bastion — zarządzane tunelowanie SSH (Standard SKU).
Reguły bezpieczeństwa sieci
NSG implementuje restrykcyjne reguły, priorytetyzując bezpieczeństwo:
- Priorytet 100 — zezwolenie na SSH z podsieci Bastion.
- Priorytet 110 — zablokowanie SSH z internetu.
- Priorytet 120 — zablokowanie SSH z VNet.
VM nie otrzymuje publicznego adresu IP — cały dostęp kierowany jest przez zarządzane tunelowanie Azure Bastion.
Tworzenie zasobów
Ustaw zmienne środowiskowe i utwórz zasoby poleceniami Azure CLI:
# Zmienne
RG="openclaw-rg"
LOCATION="westeurope"
VM_NAME="openclaw-vm"
# Grupa zasobow
az group create -n "$RG" -l "$LOCATION"
# NSG z regulami
az network nsg create -g "$RG" -n openclaw-nsg
az network nsg rule create -g "$RG" --nsg-name openclaw-nsg \
-n AllowBastionSSH --priority 100 --access Allow \
--source-address-prefixes "10.40.1.0/24" --destination-port-ranges 22
# Virtual Network
az network vnet create -g "$RG" -n openclaw-vnet \
--address-prefix 10.40.0.0/16 \
--subnet-name vm-subnet --subnet-prefix 10.40.0.0/24
# Maszyna wirtualna
az vm create -g "$RG" -n "$VM_NAME" \
--image Ubuntu2404 --size Standard_B2as_v2 \
--os-disk-size-gb 64 --public-ip-address "" \
--vnet-name openclaw-vnet --subnet vm-subnet \
--nsg openclaw-nsg --admin-username azureuser \
--ssh-key-values ~/.ssh/id_ed25519.pub
Instalacja OpenClaw
Po nawiązaniu połączenia przez Bastion:
# Dostep przez Azure Bastion
az network bastion ssh -g "$RG" -n openclaw-bastion \
--target-resource-id /subscriptions/.../virtualMachines/$VM_NAME \
--auth-type ssh-key --username azureuser --ssh-key ~/.ssh/id_ed25519
# Na maszynie wirtualnej:
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemon
openclaw gateway status
Koszty
Główne pozycje kosztowe:
- Azure Bastion Standard SKU — ok. 140 USD/mies. (można obniżyć do Basic lub usunąć, gdy nie potrzebujesz).
- Maszyna wirtualna Standard_B2as_v2 — ok. 55 USD/mies.
Sposoby redukcji kosztów:
- Dealokacja VM, gdy nie jest potrzebna (
az vm deallocate). - Usunięcie Bastion, gdy nie korzystasz z SSH.
- Zmiana SKU Bastion na Basic (tańszy, ale mniej funkcji).
Czyszczenie zasobów
Aby usunąć wszystkie zasoby jednym poleceniem:
az group delete -n "$RG" --yes --no-wait