Ce guide couvre le déploiement de Devolutions Server sur Azure App Service à l'aide d'un conteneur, offrant une plateforme entièrement gérée avec mise à l'échelle automatique, TLS intégré et intégration au service Azure.
Un abonnement Azure.
Azure CLI installé :
az --version(ou utiliser Azure Cloud Shell).Accès administrateur SQL Server (pour la création de base de données).
Image du conteneur Devolutions Server dans le registre (Docker Hub ou Azure Container Registry).
-
Aller au portail Azure.
-
Cliquer sur Créer une ressource, et rechercher Base de données SQL – Créer.
-
Dans l'onglet Informations de base, remplir les champs comme suit :
Fields Suggested input Subscription Select your subscription. Resource Group Create a new group named rg-dvls-prod.Database name Enter dvls.Server Click on Create new and fill the fields as follows: Nom du serveur:
dvls-sql-server-. Le nom du serveur doit être unique à l'échelle mondiale.Emplacement : sélectionner une région.
Authentification: entrer votre authentification SQL.
Connexion admin du serveur:
sqladmin.Mot de passe: choisir un mot de passe fort.
Cliquer sur OK.
Workload environment Select Production. Calcul + stockage
Cliquer sur Configurer la base de données, et remplir les champs comme suit :
Niveau de service : choisir Standard.
DTUs: SO (10 DTUs) pour les tests, 20+ DTUs pour la production.
Cliquer sur Appliquer.
-
Ensuite, pour l'onglet Réseautique :
Champs Entrée suggérée Méthode de connectivité Sélectionner Point d'accès public. Autoriser les services Azure Choisir Oui, car c'est requis pour que le service App fonctionne. Ajouter l'IP client actuel Choisir Oui, car c'est nécessaire pour des fins de gestion. -
Et l'onglet Paramètres supplémentaires :
Champs Entrée suggérée Utiliser les données existantes Sélectionner Aucun. Interclassement Choisir Par défaut. -
Cliquer sur Vérifier + créer – Créer et attendre le déploiement. Cela devrait prendre environ 3-5 minutes.
Naviguer vers l'Éditeur de requêtes de votre base de données SQL et se connecter avec les informations d'identification d'administration du serveur.
Exécuter la requête SQL suivante :
-- Create dedicated DVLS user
CREATE LOGIN dvls_user WITH PASSWORD = 'YourSecurePassword123!';
-- Switch to DVLS database
USE dvls;
-- Create user and grant permissions
CREATE USER dvls_user FOR LOGIN dvls_user;
ALTER ROLE db_owner ADD MEMBER dvls_user;
-
Cliquer sur Créer une ressource – Plan de service d'application – Créer.
-
Remplir l'onglet Informations de base comme suit :
Champs
Entrée suggérée
Abonnement
Sélectionner votre abonnement.
Groupe de ressources
Entrer le même que celui de la base de données :
rg-dvls-prod.Nom
Entrer
asp-dvls-prod.Système d'exploitation
Sélectionner votre système d'exploitation désiré.
Région
Entrer la même région que celle choisie lors de la configuration de la base de données SQL.
Niveau de tarification
Cliquer sur Changer la taille, puis choisir les niveaux de tarification pour :
Production : POV3 (minimum recommandé).
Développement : B2 (niveau de base, coût inférieur).
Une fois votre choix fait, cliquer sur Appliquer.
-
Cliquer sur Vérifier + créer – Créer.
-
Se diriger vers Créer une ressource – Application Web – Créer.
-
Dans l'onglet Principes, remplir les champs comme indiqué ci-dessous :
Champs Entrée suggérée Abonnement Sélectionner votre abonnement. Groupe de ressources Entrer rg-dvls-prod, comme avant.Nom Entrer dvls-prod-. Cela deviendradvls-prod-..azurewebsites.net Publier Choisir Conteneur. Système d'exploitation Sélectionner votre système d'exploitation désiré. Région Entrer la même région que pour la base de données SQL et Plan de Service App. Plan Linux Sélectionner asp-dvls-prod(créé lors de la création du plan de service d'application). -
Et l'onglet Conteneur :
Champs Entrée suggérée Source de l'image Choisir Docker Hub ou Azure Container Registry. Image et étiquette Entrer devolutions/devolutions-server:release-20XX.X(remplacer le numéro de version par le plus récent).Accès au registre Sélectionner Public (pour Docker Hub). -
Cliquer sur Vérifier + créer – Créer, et attendre 2 à 3 minutes pour le déploiement.
-
Aller à Service d'application – Configuration – Paramètres de l'application.
-
Cliquer sur Nouveau paramètre d'application pour chaque variable:
Nom Valeur Notes DATABASE_HOSTdvls-sql-server-.database.windows.net Votre nom d'hôte SQL Server. DATABASE_NAMEdvlsLe nom de votre base de données. DATABASE_USERNAMEdvls_userL'utilisateur SQL dédié. DATABASE_PASSWORDYourSecurePassword123!Utiliser la référence Key Vault en production. WEB_SCHEMEhttpProtocole (le Service d'application gère la terminaison HTTPS). PORT5000Le port d'écoute du conteneur. DVLS_TELEMETRYtrueActiver la télémétrie. WEBSITES_PORT5000Spécifique à Azure (indique à App Service quel port rediriger). -
Cliquer sur Enregistrer, puis Continuer pour confirmer le redémarrage.
-
Aller à Configuration – Paramètres de l'application.
-
Ajouter un nouveau paramètre :
Nom :
DVLS_INITValeur :
true
-
Cliquer sur Sauvegarder – Continuer. Cela redémarre l'application.
-
Sous Surveillance, aller à Flux de journalisation, et attendre 1 à 2 minutes que l'initialisation soit terminée.
-
Activer temporairement l'accès SSH en allant à Outils de développement – SSH, et cliquer sur Aller.
-
Extraire la configuration de chiffrement:
cat /opt/devolutions/dvls/App_Data/encryption.config | base64 -
Copier la sortie base64.
-
Aller à Configuration – Paramètres d'application – Nouveau paramètre d'application. Entrer
DVLS_ENCRYPTION_CONFIG_B64pour le champ Nom et coller le contenu du fichier base64 copié à l'étape n°7 dans le champ Valeur. Cliquer sur OK. -
Trouver le paramètre
DVLS_INITet cliquer sur Supprimer. -
Cliquer sur Enregistrer, puis Continuer.
-
Aller à Configuration – Paramètres de l'application.
-
Ajouter un nouveau paramètre :
Nom :
DVLS_INITValeur :
true
-
Cliquer sur Sauvegarder – Continuer. Cela redémarre l'application.
-
Sous Surveillance, aller à Flux de journalisation, et attendre 1 à 2 minutes que l'initialisation soit terminée.
-
Activer temporairement l'accès SSH en allant à Outils de développement – SSH, et cliquer sur Aller.
-
Extraire la configuration de chiffrement:
cat /opt/devolutions/dvls/App_Data/encryption.config | base64 -
Copier la sortie base64.
-
Aller à Configuration – Paramètres d'application – Nouveau paramètre d'application. Entrer
DVLS_ENCRYPTION_CONFIG_B64pour le champ Nom et coller le contenu du fichier base64 copié à l'étape n°7 dans le champ Valeur. Cliquer sur OK. -
Trouver le paramètre
DVLS_INITet cliquer sur Supprimer. -
Cliquer sur Enregistrer, puis Continuer.
-
Aller à Configuration – Paramètres de l'application.
-
Ajouter un nouveau paramètre :
Nom :
DVLS_INITValeur :
true
-
Cliquer sur Sauvegarder – Continuer. Cela redémarre l'application.
-
Sous Surveillance, aller à Flux de journalisation, et attendre 1 à 2 minutes que l'initialisation soit terminée.
-
Activer temporairement l'accès SSH en allant à Outils de développement – SSH, et cliquer sur Aller.
-
Extraire la configuration de chiffrement:
cat /opt/devolutions/dvls/App_Data/encryption.config | base64 -
Copier la sortie base64.
-
Aller à Configuration – Paramètres d'application – Nouveau paramètre d'application. Entrer
DVLS_ENCRYPTION_CONFIG_B64pour le champ Nom et coller le contenu du fichier base64 copié à l'étape n°7 dans le champ Valeur. Cliquer sur OK. -
Trouver le paramètre
DVLS_INITet cliquer sur Supprimer. -
Cliquer sur Enregistrer, puis Continuer.
Naviguer vers Aperçu – URL.
Cliquer sur l'URL ou visiter :
https://dvls-prod-.azurewebsites.net Se connecter avec les identifiants par défaut :
Nom d'utilisateur:
dvls-adminMot de passe:
dvls-admin
Immédiatement après la connexion, changer le mot de passe par défaut en vous dirigeant vers Administration – Utilisateurs, cliquant sur le bouton des points de suspension verticales de l'utilisateur dvls-admin, et sélectionnant Changer mot de passe.
Azure CLI est également disponible pour des déploiements automatisés ou répétables.
# Login to Azure
az login
# Set subscription
az account set --subscription "Your Subscription Name"
# Verify Azure CLI version (2.50+ recommended)
az --version
# Login to Azure
az login
# Set subscription
az account set --subscription "Your Subscription Name"
# Verify Azure CLI version (2.50+ recommended)
az --version
# Login to Azure
az login
# Set subscription
az account set --subscription "Your Subscription Name"
# Verify Azure CLI version (2.50+ recommended)
az --version
Naviguer vers App Service – Domaines personnalisés – Ajouter un domaine personnalisé.
Entrer votre domaine :
dvls.company.comSuivre les instructions de configuration DNS:
CNAME :
dvls.company.com→dvls-prod-..azurewebsites.net Ou Enregistrement A + enregistrement TXT pour le domaine apex.
Cliquer sur Valider, puis Ajouter.
Naviguer vers Certificats – Certificats gérés – Ajouter un certificat.
Sélectionner votre domaine personnalisé.
Cliquer sur Valider, puis Ajouter.
Naviguer vers Domaines personnalisés, sélectionner votre domaine, et cliquer sur Ajouter un lien.
Pour le Certificat, sélectionner Certificat géré.
Pour le Type TLS/SSL, choisir SNI SSL.
Cliquer sur Ajouter.
Naviguer vers Configuration – Paramètres généraux.
Mettre HTTPS uniquement sur Activé, et cliquer sur Sauvegarder.
Naviguer vers Service d'application – Application Insights – Activer Application Insights.
Créer nouveau ou Sélectionner existant ressources Application Insights.
Cliquer sur Appliquer.
# Create Application Insights
az monitor app-insights component create `
--app dvls-insights `
--location eastus `
--resource-group rg-dvls-prod `
--application-type web
# Get connection string
$CONN_STRING = az monitor app-insights component show `
--app dvls-insights `
--resource-group rg-dvls-prod `
--query connectionString -o tsv
# Configure App Service
az webapp config appsettings set `
--resource-group rg-dvls-prod `
--name dvls-prod-<unique> `
--settings "APPLICATIONINSIGHTS_CONNECTION_STRING=$CONN_STRING"
# Create Application Insights
az monitor app-insights component create \
--app dvls-insights \
--location eastus \
--resource-group rg-dvls-prod \
--application-type web
# Get connection string
CONN_STRING=$(az monitor app-insights component show \
--app dvls-insights \
--resource-group rg-dvls-prod \
--query connectionString -o tsv)
# Configure App Service
az webapp config appsettings set \
--resource-group rg-dvls-prod \
--name dvls-prod-<unique> \
--settings \
APPLICATIONINSIGHTS_CONNECTION_STRING="$CONN_STRING"
# Create Application Insights
az monitor app-insights component create \
--app dvls-insights \
--location eastus \
--resource-group rg-dvls-prod \
--application-type web
# Get connection string
CONN_STRING=$(az monitor app-insights component show \
--app dvls-insights \
--resource-group rg-dvls-prod \
--query connectionString -o tsv)
# Configure App Service
az webapp config appsettings set \
--resource-group rg-dvls-prod \
--name dvls-prod-<unique> \
--settings \
APPLICATIONINSIGHTS_CONNECTION_STRING="$CONN_STRING"
La localisation est définie sur Est des États-Unis comme exemple ici. S'assurer de changer la valeur pour votre région.
az webapp log tail `
--resource-group rg-dvls-prod `
--name dvls-prod-<unique>
az webapp log tail \
--resource-group rg-dvls-prod \
--name dvls-prod-<unique>
az webapp log tail \
--resource-group rg-dvls-prod \
--name dvls-prod-<unique>
az webapp log download `
--resource-group rg-dvls-prod `
--name dvls-prod-<unique> `
--log-file dvls-logs.zip
az webapp log download \
--resource-group rg-dvls-prod \
--name dvls-prod-<unique> \
--log-file dvls-logs.zip
az webapp log download \
--resource-group rg-dvls-prod \
--name dvls-prod-<unique> \
--log-file dvls-logs.zip
-
Activer Identité Gérée :
az webapp identity assign ` --resource-group rg-dvls-prod ` --name dvls-prod-<unique> PRINCIPAL_ID=$(az webapp identity show ` --resource-group rg-dvls-prod ` --name dvls-prod-<unique> ` --query principalId -o tsv) -
Créer un coffre de clés et stocker le secret :
az keyvault create ` --name kv-dvls-prod ` --resource-group rg-dvls-prod ` --location eastus az keyvault secret set ` --vault-name kv-dvls-prod ` --name dvls-db-password ` --value 'YourSecurePassword123!' -
Octroyer l'accès :
az keyvault set-policy ` --name kv-dvls-prod ` --object-id "$PRINCIPAL_ID" ` --secret-permissions get -
Référence dans Paramètres de l'application:
SECRET_URI=$(az keyvault secret show ` --vault-name kv-dvls-prod ` --name dvls-db-password ` --query id -o tsv) az webapp config appsettings set ` --resource-group rg-dvls-prod ` --name dvls-prod-<unique> ` --settings ` DATABASE_PASSWORD="@Microsoft.KeyVault(SecretUri=${SECRET_URI})"
-
Activer Identité Gérée :
az webapp identity assign \ --resource-group rg-dvls-prod \ --name dvls-prod-<unique> PRINCIPAL_ID=$(az webapp identity show \ --resource-group rg-dvls-prod \ --name dvls-prod-<unique> \ --query principalId -o tsv) -
Créer un coffre de clés et stocker le secret :
az keyvault create \ --name kv-dvls-prod \ --resource-group rg-dvls-prod \ --location eastus az keyvault secret set \ --vault-name kv-dvls-prod \ --name dvls-db-password \ --value 'YourSecurePassword123!' -
Octroyer l'accès :
az keyvault set-policy \ --name kv-dvls-prod \ --object-id "$PRINCIPAL_ID" \ --secret-permissions get -
Référence dans Paramètres de l'application:
SECRET_URI=$(az keyvault secret show \ --vault-name kv-dvls-prod \ --name dvls-db-password \ --query id -o tsv) az webapp config appsettings set \ --resource-group rg-dvls-prod \ --name dvls-prod-<unique> \ --settings \ DATABASE_PASSWORD="@Microsoft.KeyVault(SecretUri=${SECRET_URI})"
-
Activer Identité Gérée :
az webapp identity assign \ --resource-group rg-dvls-prod \ --name dvls-prod-<unique> PRINCIPAL_ID=$(az webapp identity show \ --resource-group rg-dvls-prod \ --name dvls-prod-<unique> \ --query principalId -o tsv) -
Créer un coffre de clés et stocker le secret :
az keyvault create \ --name kv-dvls-prod \ --resource-group rg-dvls-prod \ --location eastus az keyvault secret set \ --vault-name kv-dvls-prod \ --name dvls-db-password \ --value 'YourSecurePassword123!' -
Octroyer l'accès :
az keyvault set-policy \ --name kv-dvls-prod \ --object-id "$PRINCIPAL_ID" \ --secret-permissions get -
Référence dans Paramètres de l'application:
SECRET_URI=$(az keyvault secret show \ --vault-name kv-dvls-prod \ --name dvls-db-password \ --query id -o tsv) az webapp config appsettings set \ --resource-group rg-dvls-prod \ --name dvls-prod-<unique> \ --settings \ DATABASE_PASSWORD="@Microsoft.KeyVault(SecretUri=${SECRET_URI})"