Préparer un serveur sur Azure
Ce guide prépare une machine virtuelle pour Bring Your Own Server, avec son pare-feu, son IP fixe et son stockage de sauvegarde. Skysize installe tout le reste sur le serveur.
Chaque étape comporte deux onglets : cliquez dans Console, ou collez depuis Ligne de commande. Votre choix s'applique à toute la page.
Les commandes s'exécutent dans Cloud Shell (Bash), l'icône de terminal en haut du portail Azure : vous n'avez ainsi rien à installer. Gardez le même onglet ouvert, car chaque bloc réutilise les valeurs de l'étape 1.
1. Choisir vos valeurs
Choisissez l'emplacement le plus proche de vos utilisateurs, et la taille adaptée à votre usage.
| Usage | Taille | vCPU | RAM | Disque |
|---|---|---|---|---|
| Une branche de production et une de staging | Standard_D2s_v5 | 2 | 8 GB | 128 GB |
| Production avec des branches de staging et de développement | Standard_D4s_v5 | 4 | 16 GB | 256 GB |
Évitez les tailles avec un p après le nombre, comme D2ps_v5 : elles sont ARM, et l'installateur refuse de s'y exécuter. Évitez la série B en production : elle ralentit sous une charge soutenue.
- Console
- Ligne de commande
Ouvrez Resource groups → Create, nommez le groupe skysize-odoo, et choisissez votre emplacement. Utilisez le même groupe et le même emplacement à chaque étape.
LOCATION=eastus
NAME=skysize-odoo
SIZE=Standard_D2s_v5
DISK_GB=128
STORAGE=skysizeodoo$RANDOM
az group create --name "$NAME" --location "$LOCATION"
2. Créer le groupe de sécurité réseau
Le serveur a besoin de ces règles entrantes, et d'aucune autre :
| Service | Port | Source | Pourquoi |
|---|---|---|---|
| SSH | 22 | Any | Votre accès au serveur, avec une clé SSH uniquement |
| HTTP | 80 | Any | Certificats et redirections |
| HTTPS | 443 | Any | Vos sites Odoo |
Skysize n'a besoin d'aucun port entrant qui lui soit propre. Une fois que vous connaissez l'adresse depuis laquelle vous vous connectez, vous pouvez y limiter la règle SSH. Laissez PostgreSQL (5432) fermé sauf si vous utilisez l'accès à la base de données en lecture seule. Le trafic sortant est autorisé par défaut, et le serveur en a besoin.
- Console
- Ligne de commande
Il n'y a rien à créer pour l'instant : vous définissez ces règles en créant la VM à l'étape suivante.
az network nsg create --resource-group "$NAME" --name "$NAME"
az network nsg rule create --resource-group "$NAME" --nsg-name "$NAME" \
--name ssh --priority 1000 --protocol Tcp --destination-port-ranges 22 --access Allow
az network nsg rule create --resource-group "$NAME" --nsg-name "$NAME" \
--name web --priority 1010 --protocol Tcp --destination-port-ranges 80 443 --access Allow
3. Créer la VM avec une IP fixe
Utilisez Ubuntu 24.04 pour x86, une IP publique statique pour que vos enregistrements DNS continuent de fonctionner, et une identité managée pour les sauvegardes. Notez l'IP : vos enregistrements DNS pointeront vers elle.
- Console
- Ligne de commande
Ouvrez Virtual machines → Create → Azure virtual machine, et définissez :
| Onglet | Paramètre | Valeur |
|---|---|---|
| Basics | Resource group | skysize-odoo |
| Basics | Virtual machine name | skysize-odoo |
| Basics | Image | Ubuntu Server 24.04 LTS, x64 |
| Basics | Size | La taille de l'étape 1 |
| Basics | Authentication type | SSH public key, nom d'utilisateur azureuser |
| Basics | Public inbound ports | Allow selected ports : SSH (22), HTTP (80), HTTPS (443) |
| Disks | OS disk | Premium SSD, avec la taille de l'étape 1 |
| Networking | Public IP | Gardez la nouvelle IP proposée, qui est statique |
| Management | Enable system assigned managed identity | Activé |
Cliquez sur Review + create, puis sur Create, et téléchargez la clé SSH lorsque cela vous est demandé.
az vm create --resource-group "$NAME" --name "$NAME" \
--image Canonical:ubuntu-24_04-lts:server:latest \
--size "$SIZE" \
--os-disk-size-gb "$DISK_GB" --storage-sku Premium_LRS \
--admin-username azureuser --generate-ssh-keys \
--nsg "$NAME" --public-ip-sku Standard \
--assign-identity
az vm show --resource-group "$NAME" --name "$NAME" --show-details --query publicIps --output tsv
4. Créer le stockage de sauvegarde
Skysize n'effectue aucune sauvegarde tant qu'un projet n'a pas de cible de sauvegarde. Cette étape crée un compte de stockage privé et permet à l'identité managée du serveur de l'utiliser, sans aucun secret à stocker. Notez le nom du compte de stockage.
- Console
- Ligne de commande
Compte de stockage
- Ouvrez Storage accounts → Create.
- Choisissez le groupe
skysize-odoo, et un nom unique sur l'ensemble d'Azure : lettres minuscules et chiffres uniquement. - Réglez Redundancy sur LRS.
- Dans l'onglet Advanced, désactivez Allow enabling anonymous access on individual containers.
- Cliquez sur Review + create, puis sur Create.
Conteneur et accès
- Dans le compte de stockage, ouvrez Containers, et ajoutez-en un nommé
backups. - Ouvrez Access Control (IAM) → Add → Add role assignment.
- Choisissez Storage Blob Data Contributor, puis sous Members choisissez Managed identity et sélectionnez votre VM.
- Cliquez sur Review + assign.
- Recommencez avec Storage Blob Delegator.
az storage account create --resource-group "$NAME" --name "$STORAGE" \
--location "$LOCATION" --sku Standard_LRS --allow-blob-public-access false
az storage container create --account-name "$STORAGE" --name backups --auth-mode key
PRINCIPAL=$(az vm show --resource-group "$NAME" --name "$NAME" --query identity.principalId --output tsv)
SCOPE=$(az storage account show --resource-group "$NAME" --name "$STORAGE" --query id --output tsv)
az role assignment create --assignee-object-id "$PRINCIPAL" --assignee-principal-type ServicePrincipal \
--role "Storage Blob Data Contributor" --scope "$SCOPE"
az role assignment create --assignee-object-id "$PRINCIPAL" --assignee-principal-type ServicePrincipal \
--role "Storage Blob Delegator" --scope "$SCOPE"
echo "Storage account: $STORAGE"
5. Se connecter au serveur
C'est ici que vous collez la commande d'installation de Skysize.
- Console
- Ligne de commande
Depuis un terminal sur votre ordinateur, avec la clé que vous avez téléchargée :
ssh -i skysize-odoo_key.pem azureuser@YOUR_PUBLIC_IP
Depuis le même Cloud Shell, qui détient la clé SSH :
ssh azureuser@YOUR_PUBLIC_IP
6. Définir la cible de sauvegarde
Une fois votre projet créé, ouvrez ses Paramètres → Cible de sauvegarde, cliquez sur Ajouter une cible et renseignez :
| Champ | Valeur |
|---|---|
| Type | Azure Blob Storage |
| Compte de stockage | Le nom de votre compte de stockage |
| Conteneur | backups |
| Préfixe | Le nom du projet |
| Authentification | Identité managée |
Cliquez sur Tester pour la vérifier depuis votre serveur. Les nouveaux rôles peuvent mettre quelques minutes à s'appliquer : réessayez si le premier test échoue.
Envoyer des emails depuis Odoo
Azure bloque le port 25 sortant sur la plupart des types d'abonnement. Utilisez un relais SMTP authentifié sur le port 587. Voir Configurer l'email sortant.
Connecter le serveur à Skysize
Votre serveur est prêt. Suivez Configurer votre propre serveur, à partir de l'étape d'enregistrement du serveur. En bref : enregistrez-le dans le tableau de bord, connectez-vous-y en SSH et collez la commande d'installation. Le statut passe à En ligne moins d'une minute après la fin de l'installateur.
Une fois votre premier projet lancé, ajoutez votre domaine.
En cas de problème
Le tableau de bord indique que les ports 80 et 443 ne sont pas joignables. Vérifiez les règles de pare-feu ci-dessus, et que l'IP publique indiquée dans les paramètres du serveur est bien celle que vous avez notée. Cliquez ensuite sur Vérifier à nouveau.
Le serveur reste Hors ligne. Le serveur se connecte en sortie à Skysize, aucune règle entrante ne résout donc ce problème. Exécutez ces commandes sur le serveur :
sudo systemctl status skysize-agent
sudo journalctl -u skysize-agent -n 50
nc -zv cp.skysize.io 50051
Si l'installateur ne s'est pas terminé, ou si le jeton d'enrôlement a déjà été utilisé, utilisez Régénérer le jeton d'enrôlement sur la page du serveur et relancez la commande d'installation.
Le problème persiste ? Ouvrez Assistance dans le tableau de bord et joignez la sortie de ces commandes.