Ana içeriğe atla

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Bu kılavuz, Azure CLI ile bir Azure Linux VM kurar, Network Security Group (NSG) sıkılaştırması uygular, SSH erişimi için Azure Bastion yapılandırır ve OpenClaw yükler.

Yapacaklarınız

  • Azure CLI ile Azure ağını (VNet, alt ağlar, NSG) ve işlem kaynaklarını oluşturma
  • VM SSH erişimine yalnızca Azure Bastion üzerinden izin verilecek şekilde Network Security Group kurallarını uygulama
  • SSH erişimi için Azure Bastion kullanma (VM üzerinde genel IP yok)
  • Yükleyici betiğiyle OpenClaw yükleme
  • Gateway’i doğrulama

Gerekenler

  • İşlem ve ağ kaynakları oluşturma iznine sahip bir Azure aboneliği
  • Azure CLI yüklü (gerekirse Azure CLI yükleme adımlarına bakın)
  • Bir SSH anahtar çifti (gerekirse kılavuz bir tane oluşturmayı kapsar)
  • ~20-30 dakika

Dağıtımı yapılandırma

1

Azure CLI’da oturum açın

az login
az extension add -n ssh
ssh uzantısı, Azure Bastion yerel SSH tünellemesi için gereklidir.
2

Gerekli kaynak sağlayıcılarını kaydedin (bir kerelik)

az provider register --namespace Microsoft.Compute
az provider register --namespace Microsoft.Network
Kaydı doğrulayın. İkisi de Registered gösterene kadar bekleyin.
az provider show --namespace Microsoft.Compute --query registrationState -o tsv
az provider show --namespace Microsoft.Network --query registrationState -o tsv
3

Dağıtım değişkenlerini ayarlayın

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"
Adları ve CIDR aralıklarını ortamınıza uyacak şekilde ayarlayın. Bastion alt ağı en az /26 olmalıdır.
4

SSH anahtarı seçin

Varsa mevcut genel anahtarınızı kullanın:
SSH_PUB_KEY="$(cat ~/.ssh/id_ed25519.pub)"
Henüz bir SSH anahtarınız yoksa bir tane oluşturun:
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519 -C "you@example.com"
SSH_PUB_KEY="$(cat ~/.ssh/id_ed25519.pub)"
5

VM boyutunu ve OS disk boyutunu seçin

VM_SIZE="Standard_B2as_v2"
OS_DISK_SIZE_GB=64
Aboneliğinizde ve bölgenizde kullanılabilir bir VM boyutu ve OS disk boyutu seçin:
  • Hafif kullanım için daha küçük başlayın ve daha sonra ölçek büyütün
  • Daha ağır otomasyon, daha fazla kanal veya daha büyük model/araç iş yükleri için daha fazla vCPU/RAM/disk kullanın
  • Bir VM boyutu bölgenizde veya abonelik kotanızda kullanılamıyorsa, kullanılabilir en yakın SKU’yu seçin
Hedef bölgenizde kullanılabilir VM boyutlarını listeleyin:
az vm list-skus --location "${LOCATION}" --resource-type virtualMachines -o table
Geçerli vCPU ve disk kullanımınızı/kotanızı kontrol edin:
az vm list-usage --location "${LOCATION}" -o table

Azure kaynaklarını dağıtma

1

Kaynak grubunu oluşturun

az group create -n "${RG}" -l "${LOCATION}"
2

Network Security Group oluşturun

NSG’yi oluşturun ve yalnızca Bastion alt ağının VM’ye SSH ile bağlanabilmesi için kurallar ekleyin.
az network nsg create \
  -g "${RG}" -n "${NSG_NAME}" -l "${LOCATION}"

# Allow SSH from the Bastion subnet only
az 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 internet
az 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 sources
az 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 22
Kurallar önceliğe göre değerlendirilir (en düşük sayı önce): Bastion trafiğine 100’de izin verilir, ardından diğer tüm SSH erişimi 110 ve 120’de engellenir.
3

Sanal ağı ve alt ağları oluşturun

VM alt ağıyla (NSG bağlı) VNet’i oluşturun, ardından Bastion alt ağını ekleyin.
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 subnet
az network vnet subnet update \
  -g "${RG}" --vnet-name "${VNET_NAME}" \
  -n "${VM_SUBNET_NAME}" --nsg "${NSG_NAME}"

# AzureBastionSubnet — name is required by Azure
az network vnet subnet create \
  -g "${RG}" --vnet-name "${VNET_NAME}" \
  -n AzureBastionSubnet \
  --address-prefixes "${BASTION_SUBNET_PREFIX}"
4

VM’yi oluşturun

VM’nin genel IP’si yoktur. SSH erişimi yalnızca Azure Bastion üzerinden yapılır.
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 "" genel IP atanmasını engeller. --nsg "" NIC başına NSG oluşturmayı atlar (güvenliği alt ağ düzeyindeki NSG sağlar).Yeniden üretilebilirlik: Yukarıdaki komut, Ubuntu imajı için latest kullanır. Belirli bir sürümü sabitlemek için kullanılabilir sürümleri listeleyin ve latest değerini değiştirin:
az vm image list \
  --publisher Canonical --offer ubuntu-24_04-lts \
  --sku server --all -o table
5

Azure Bastion oluşturun

Azure Bastion, genel IP açığa çıkarmadan VM’ye yönetilen SSH erişimi sağlar. CLI tabanlı az network bastion ssh için tünelleme özellikli Standard SKU gereklidir.
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 true
Bastion hazırlama genellikle 5-10 dakika sürer, ancak bazı bölgelerde 15-30 dakikaya kadar sürebilir.

OpenClaw yükleme

1

Azure Bastion üzerinden VM’ye SSH ile bağlanın

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_ed25519
2

OpenClaw yükleyin (VM kabuğunda)

curl -fsSL https://openclaw.ai/install.sh -o /tmp/install.sh
bash /tmp/install.sh
rm -f /tmp/install.sh
Yükleyici, henüz mevcut değilse Node LTS ve bağımlılıkları yükler, OpenClaw’u yükler ve ilk kurulum sihirbazını başlatır. Ayrıntılar için Yükleme bölümüne bakın.
3

Gateway’i doğrulayın

İlk kurulum tamamlandıktan sonra:
openclaw gateway status
Çoğu kurumsal Azure ekibinin zaten GitHub Copilot lisansları vardır. Durumunuz buysa, OpenClaw ilk kurulum sihirbazında GitHub Copilot sağlayıcısını seçmenizi öneririz. GitHub Copilot sağlayıcısı bölümüne bakın.

Maliyet değerlendirmeleri

Azure Bastion Standard SKU yaklaşık $140/ay, VM (Standard_B2as_v2) ise yaklaşık $55/ay maliyetle çalışır. Maliyetleri azaltmak için:
  • VM’yi ayırın kullanılmadığında (işlem faturalandırmasını durdurur; disk ücretleri devam eder). VM ayrılmış durumdayken OpenClaw Gateway’e erişilemez; tekrar canlı ihtiyacınız olduğunda yeniden başlatın:
    az vm deallocate -g "${RG}" -n "${VM_NAME}"
    az vm start -g "${RG}" -n "${VM_NAME}"   # restart later
    
  • Gerekmediğinde Bastion’ı silin ve SSH erişimine ihtiyacınız olduğunda yeniden oluşturun. Bastion en büyük maliyet bileşenidir ve hazırlanması yalnızca birkaç dakika sürer.
  • Yalnızca Portal tabanlı SSH gerekiyorsa ve CLI tünellemesi (az network bastion ssh) gerekmiyorsa Basic Bastion SKU’yu (~$38/ay) kullanın.

Temizleme

Bu kılavuz tarafından oluşturulan tüm kaynakları silmek için:
az group delete -n "${RG}" --yes --no-wait
Bu işlem kaynak grubunu ve içindeki her şeyi (VM, VNet, NSG, Bastion, genel IP) kaldırır.

Sonraki adımlar

İlgili