Déploiement de Devolutions Server sur Azure App Service à l'aide d'un conteneur

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.

Déploiement sur le portail Azure.

Prérequis

  • 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).

Créer une base de données Azure SQL

  1. Aller au portail Azure.

  2. Cliquer sur Créer une ressource, et rechercher Base de données SQLCréer.

  3. Dans l'onglet Informations de base, remplir les champs comme suit :

    FieldsSuggested input
    SubscriptionSelect your subscription.
    Resource GroupCreate a new group named rg-dvls-prod.
    Database nameEnter dvls.
    ServerClick 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 environmentSelect 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.

  4. 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.
  5. 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.
  6. Cliquer sur Vérifier + créerCréer et attendre le déploiement. Cela devrait prendre environ 3-5 minutes.

Créer un utilisateur de base de données pour Devolutions Server

  1. 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.

  2. 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;

Créer un Plan de Service d'App

  1. Cliquer sur Créer une ressourcePlan de service d'applicationCréer.

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

  3. Cliquer sur Vérifier + créerCréer.

Créer le service d'application

  1. Se diriger vers Créer une ressourceApplication WebCréer.

  2. 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 deviendra dvls-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).
  3. 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).
  4. Cliquer sur Vérifier + créerCréer, et attendre 2 à 3 minutes pour le déploiement.

Configurer les paramètres de l'application

  1. Aller à Service d'applicationConfigurationParamètres de l'application.

  2. Cliquer sur Nouveau paramètre d'application pour chaque variable:

    Nom Valeur Notes
    DATABASE_HOST dvls-sql-server-.database.windows.net Votre nom d'hôte SQL Server.
    DATABASE_NAME dvls Le nom de votre base de données.
    DATABASE_USERNAME dvls_user L'utilisateur SQL dédié.
    DATABASE_PASSWORD YourSecurePassword123! Utiliser la référence Key Vault en production.
    WEB_SCHEME http Protocole (le Service d'application gère la terminaison HTTPS).
    PORT 5000 Le port d'écoute du conteneur.
    DVLS_TELEMETRY true Activer la télémétrie.
    WEBSITES_PORT 5000 Spécifique à Azure (indique à App Service quel port rediriger).
  3. Cliquer sur Enregistrer, puis Continuer pour confirmer le redémarrage.

Initialiser Devolutions Server et récupérer la configuration de chiffrement

  1. Aller à ConfigurationParamètres de l'application.

  2. Ajouter un nouveau paramètre :

    • Nom : DVLS_INIT

    • Valeur : true

  3. Cliquer sur SauvegarderContinuer. Cela redémarre l'application.

  4. Sous Surveillance, aller à Flux de journalisation, et attendre 1 à 2 minutes que l'initialisation soit terminée.

  5. Activer temporairement l'accès SSH en allant à Outils de développementSSH, et cliquer sur Aller.

  6. Extraire la configuration de chiffrement:

    cat /opt/devolutions/dvls/App_Data/encryption.config | base64
    
  7. Copier la sortie base64.

  8. Aller à ConfigurationParamètres d'applicationNouveau paramètre d'application. Entrer DVLS_ENCRYPTION_CONFIG_B64 pour le champ Nom et coller le contenu du fichier base64 copié à l'étape n°7 dans le champ Valeur. Cliquer sur OK.

  9. Trouver le paramètre DVLS_INIT et cliquer sur Supprimer.

  10. Cliquer sur Enregistrer, puis Continuer.

  1. Aller à ConfigurationParamètres de l'application.

  2. Ajouter un nouveau paramètre :

    • Nom : DVLS_INIT

    • Valeur : true

  3. Cliquer sur SauvegarderContinuer. Cela redémarre l'application.

  4. Sous Surveillance, aller à Flux de journalisation, et attendre 1 à 2 minutes que l'initialisation soit terminée.

  5. Activer temporairement l'accès SSH en allant à Outils de développementSSH, et cliquer sur Aller.

  6. Extraire la configuration de chiffrement:

    cat /opt/devolutions/dvls/App_Data/encryption.config | base64
    
  7. Copier la sortie base64.

  8. Aller à ConfigurationParamètres d'applicationNouveau paramètre d'application. Entrer DVLS_ENCRYPTION_CONFIG_B64 pour le champ Nom et coller le contenu du fichier base64 copié à l'étape n°7 dans le champ Valeur. Cliquer sur OK.

  9. Trouver le paramètre DVLS_INIT et cliquer sur Supprimer.

  10. Cliquer sur Enregistrer, puis Continuer.

  1. Aller à ConfigurationParamètres de l'application.

  2. Ajouter un nouveau paramètre :

    • Nom : DVLS_INIT

    • Valeur : true

  3. Cliquer sur SauvegarderContinuer. Cela redémarre l'application.

  4. Sous Surveillance, aller à Flux de journalisation, et attendre 1 à 2 minutes que l'initialisation soit terminée.

  5. Activer temporairement l'accès SSH en allant à Outils de développementSSH, et cliquer sur Aller.

  6. Extraire la configuration de chiffrement:

    cat /opt/devolutions/dvls/App_Data/encryption.config | base64
    
  7. Copier la sortie base64.

  8. Aller à ConfigurationParamètres d'applicationNouveau paramètre d'application. Entrer DVLS_ENCRYPTION_CONFIG_B64 pour le champ Nom et coller le contenu du fichier base64 copié à l'étape n°7 dans le champ Valeur. Cliquer sur OK.

  9. Trouver le paramètre DVLS_INIT et cliquer sur Supprimer.

  10. Cliquer sur Enregistrer, puis Continuer.

Accéder à Devolutions Server

  1. Naviguer vers AperçuURL.

  2. Cliquer sur l'URL ou visiter : https://dvls-prod-.azurewebsites.net

  3. Se connecter avec les identifiants par défaut :

    • Nom d'utilisateur: dvls-admin

    • Mot de passe: dvls-admin

Immédiatement après la connexion, changer le mot de passe par défaut en vous dirigeant vers AdministrationUtilisateurs, cliquant sur le bouton des points de suspension verticales de l'utilisateur dvls-admin, et sélectionnant Changer mot de passe.

Déploiement Azure CLI

Azure CLI est également disponible pour des déploiements automatisés ou répétables.

Prérequis

# 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

Domaine personnalisé et TLS.

Ajouter un domaine personnalisé

  1. Naviguer vers App ServiceDomaines personnalisésAjouter un domaine personnalisé.

  2. Entrer votre domaine : dvls.company.com

  3. Suivre les instructions de configuration DNS:

    • CNAME : dvls.company.comdvls-prod-.azurewebsites.net.

    • Ou Enregistrement A + enregistrement TXT pour le domaine apex.

  4. Cliquer sur Valider, puis Ajouter.

Ajouter un certificat géré (gratuit et se renouvelle automatiquement)

  1. Naviguer vers CertificatsCertificats gérésAjouter un certificat.

  2. Sélectionner votre domaine personnalisé.

  3. Cliquer sur Valider, puis Ajouter.

  4. Naviguer vers Domaines personnalisés, sélectionner votre domaine, et cliquer sur Ajouter un lien.

  5. Pour le Certificat, sélectionner Certificat géré.

  6. Pour le Type TLS/SSL, choisir SNI SSL.

  7. Cliquer sur Ajouter.

Forcer HTTPS

  1. Naviguer vers ConfigurationParamètres généraux.

  2. Mettre HTTPS uniquement sur Activé, et cliquer sur Sauvegarder.

Surveillance

Activer Application Insights.

Portail

  1. Naviguer vers Service d'applicationApplication InsightsActiver Application Insights.

  2. Créer nouveau ou Sélectionner existant ressources Application Insights.

  3. Cliquer sur Appliquer.

CLI

# 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.

Afficher les journaux.

Flux de journaux

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>

Télécharger les journaux.

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

Sécurité

Utiliser Azure Key Vault pour les secrets.

  1. 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)
    
  2. 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!'
    
  3. Octroyer l'accès :

    az keyvault set-policy `
      --name kv-dvls-prod `
      --object-id "$PRINCIPAL_ID" `
      --secret-permissions get
    
  4. 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})"
    
  1. 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)
    
  2. 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!'
    
  3. Octroyer l'accès :

    az keyvault set-policy \
      --name kv-dvls-prod \
      --object-id "$PRINCIPAL_ID" \
      --secret-permissions get
    
  4. 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})"
    
  1. 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)
    
  2. 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!'
    
  3. Octroyer l'accès :

    az keyvault set-policy \
      --name kv-dvls-prod \
      --object-id "$PRINCIPAL_ID" \
      --secret-permissions get
    
  4. 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})"
    

Voir aussi

Devolutions Forum logo Partagez vos commentaires