Azure
Ce guide configure une machine virtuelle Azure Linux avec l’interface de ligne de commande Azure (CLI), applique le durcissement du groupe de sécurité réseau (NSG), configure Azure Bastion pour l’accès SSH et installe OpenClaw.
Ce que vous allez faire
Section intitulée « Ce que vous allez faire »- Créer des ressources de mise en réseau (VNet, sous-réseaux, NSG) et de calcul Azure avec l’interface de ligne de commande Azure (CLI)
- Appliquer des règles de groupe de sécurité réseau pour que le SSH de la machine virtuelle soit autorisé uniquement depuis Azure Bastion
- Utiliser Azure Bastion pour l’accès SSH (pas d’adresse IP publique sur la machine virtuelle)
- Installer OpenClaw avec le script d’installation
- Vérifier la passerelle (Gateway)
Ce dont vous avez besoin
Section intitulée « Ce dont vous avez besoin »- Un abonnement Azure avec l’autorisation de créer des ressources de calcul et de réseau
- Interface de ligne de commande Azure (CLI) installée (voir les étapes d’installation de l’interface de ligne de commande Azure si nécessaire)
- Une paire de clés SSH (le guide explique comment en générer une si nécessaire)
- ~20-30 minutes
Configurer le déploiement
Section intitulée « Configurer le déploiement »CLISe connecter à l'interface de ligne de commande Azure
Fenêtre de terminal az loginaz extension add -n sshL’extension
sshest requise pour le tunnelage SSH natif d’Azure Bastion.Inscrire les fournisseurs de ressources requis (une seule fois)
Fenêtre de terminal az provider register --namespace Microsoft.Computeaz provider register --namespace Microsoft.NetworkVérifiez l’inscription. Attendez que les deux affichent
Registered.Fenêtre de terminal az provider show --namespace Microsoft.Compute --query registrationState -o tsvaz provider show --namespace Microsoft.Network --query registrationState -o tsvDéfinir les variables de déploiement
Fenêtre de terminal 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"Ajustez les noms et les plages CIDR pour qu’ils correspondent à votre environnement. Le sous-réseau Bastion doit être au minimum de
/26.Sélectionner la clé SSH
Utilisez votre clé publique existante si vous en avez une :
Fenêtre de terminal SSH_PUB_KEY="$(cat ~/.ssh/id_ed25519.pub)"Si vous n’avez pas encore de clé SSH, générez-en une :
Fenêtre de terminal SSH_PUB_KEY="$(cat ~/.ssh/id_ed25519.pub)"Sélectionner la taille de la machine virtuelle et la taille du disque du système d'exploitation
Fenêtre de terminal VM_SIZE="Standard_B2as_v2"OS_DISK_SIZE_GB=64Choisissez une taille de machine virtuelle et une taille de disque du système d’exploitation disponibles dans votre abonnement et votre région :
- Commencez plus petit pour une utilisation légère et passez à l’échelle plus tard
- Utilisez plus de vCPU/RAM/disque pour une automatisation plus lourde, plus de canaux ou des charges de travail de modèle/outil plus importantes
- Si une taille de machine virtuelle n’est pas disponible dans votre région ou votre quota d’abonnement, choisissez la référence (SKU) disponible la plus proche
Répertorier les tailles de machines virtuelles disponibles dans votre région cible :
Fenêtre de terminal az vm list-skus --location "${LOCATION}" --resource-type virtualMachines -o tableVérifiez votre utilisation et votre quota actuels de vCPU et de disque :
Fenêtre de terminal az vm list-usage --location "${LOCATION}" -o table
Déployer des ressources Azure
Section intitulée « Déployer des ressources Azure »Créer le groupe de ressources
Fenêtre de terminal az group create -n "${RG}" -l "${LOCATION}"Créer le groupe de sécurité réseau
Créez le groupe de sécurité réseau (NSG) et ajoutez des règles pour que seul le sous-réseau Bastion puisse se connecter en SSH à la machine virtuelle.
Fenêtre de terminal 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 22Les règles sont évaluées par priorité (le plus petit nombre en premier) : le trafic Bastion est autorisé à 100, puis tout autre SSH est bloqué à 110 et 120.
Créer le réseau virtuel et les sous-réseaux
Créez le réseau virtuel avec le sous-réseau de la machine virtuelle (NSG attaché), puis ajoutez le sous-réseau Bastion.
Fenêtre de terminal 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 — name is required by Azureaz network vnet subnet create \-g "${RG}" --vnet-name "${VNET_NAME}" \-n AzureBastionSubnet \--address-prefixes "${BASTION_SUBNET_PREFIX}"Créer la machine virtuelle
La machine virtuelle n’a pas d’adresse IP publique. L’accès SSH se fait exclusivement via Azure Bastion.
Fenêtre de terminal 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 ""empêche l’attribution d’une adresse IP publique.--nsg ""ignore la création d’un groupe de sécurité réseau par interface réseau (le NSG au niveau du sous-réseau gère la sécurité).Reproductibilité : La commande ci-dessus utilise
latestpour l’image Ubuntu. Pour épingler une version spécifique, listez les versions disponibles et remplacezlatest:Fenêtre de terminal az vm image list \--publisher Canonical --offer ubuntu-24_04-lts \--sku server --all -o tableCréer Azure Bastion
Azure Bastion fournit un accès SSH géré à la machine virtuelle sans exposer d’adresse IP publique. Le SKU Standard avec tunneling est requis pour CLI
az network bastion ssh.Fenêtre de terminal az network public-ip create \-g "${RG}" -n "${BASTION_PIP_NAME}" -l "${LOCATION}" \--sku Standard --allocation-method Staticaz network bastion create \-g "${RG}" -n "${BASTION_NAME}" -l "${LOCATION}" \--vnet-name "${VNET_NAME}" \--public-ip-address "${BASTION_PIP_NAME}" \--sku Standard --enable-tunneling trueL’approvisionnement de Bastion prend généralement 5 à 10 minutes, mais peut prendre jusqu’à 15 à 30 minutes dans certaines régions.
Installer OpenClaw
Section intitulée « Installer OpenClaw »Se connecter en SSH à la machine virtuelle via Azure Bastion
Fenêtre de terminal 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_ed25519Installer OpenClaw (dans le shell de la machine virtuelle)
Fenêtre de terminal curl -fsSL https://openclaw.ai/install.sh -o /tmp/install.shbash /tmp/install.shrm -f /tmp/install.shLe programme d’installation installe Node LTS et les dépendances si elles ne sont pas déjà présentes, installe OpenClaw et lance l’assistant d’intégration. Voir Installer pour plus de détails.
Vérifier le Gateway
Une fois l’intégration terminée :
Fenêtre de terminal openclaw gateway statusLa plupart des équipes Azure entreprise possèdent déjà des licences GitHub Copilot. Si c’est votre cas, nous recommandons de choisir le provider GitHub Copilot dans l’assistant d’intégration OpenClaw. Voir Provider GitHub Copilot.
Considérations relatives aux coûts
Section intitulée « Considérations relatives aux coûts »Le SKU Standard Azure Bastion coûte environ 140 $/mois et la machine virtuelle (Standard_B2as_v2) coûte environ 55 $/mois.
Pour réduire les coûts :
-
Libérer la machine virtuelle lorsqu’elle n’est pas utilisée (arrête la facturation de calcul ; les frais de disque restent). Le OpenClaw Gateway ne sera pas accessible tant que la machine virtuelle est libérée — redémarrez-la lorsque vous en avez besoin à nouveau :
Fenêtre de terminal az vm deallocate -g "${RG}" -n "${VM_NAME}"az vm start -g "${RG}" -n "${VM_NAME}" # restart later -
Supprimer Bastion lorsqu’il n’est pas nécessaire et le recréer lorsque vous avez besoin d’un accès SSH. Bastion est le composant le plus coûteux et ne prend que quelques minutes à provisionner.
-
Utiliser le SKU Basic Bastion (~38 $/mois) si vous avez uniquement besoin d’un SSH basé sur le portail et que vous n’exigez pas de tunneling CLI (
az network bastion ssh).
Nettoyage
Section intitulée « Nettoyage »Pour supprimer toutes les ressources créées par ce guide :
az group delete -n "${RG}" --yes --no-waitCela supprime le groupe de ressources et tout ce qu’il contient (machine virtuelle, réseau virtuel, groupe de sécurité réseau, Bastion, adresse IP publique).
Étapes suivantes
Section intitulée « Étapes suivantes »- Configurer les canaux de messagerie : Canaux
- Associer des appareils locaux en tant que nœuds : Nœuds
- Configurer le Gateway : configuration du Gateway
- Pour plus de détails sur le déploiement Azure OpenClaw avec le fournisseur de modèle Copilot GitHub : OpenClaw sur Azure avec Copilot GitHub