Partager via


Utiliser l’Infrastructure d’automatisation du déploiement SAP à partir d’Azure DevOps Services

Azure DevOps simplifie le processus de déploiement en fournissant des pipelines que vous pouvez exécuter pour effectuer le déploiement de l’infrastructure et les activités d’installation de SAP et de configuration.

Vous pouvez utiliser Azure Repos pour stocker vos fichiers de configuration et utiliser Azure Pipelines pour déployer et configurer l’infrastructure et l’application SAP.

S’inscrire à Azure DevOps Services

Pour utiliser Azure DevOps Services, vous avez besoin d’une organisation Azure DevOps. Une organisation permet de connecter des groupes de projets connexes. Utilisez votre compte professionnel ou scolaire pour connecter automatiquement votre organisation à votre annuaire Microsoft Entra ID. Pour créer un compte, ouvrez Azure DevOps et connectez-vous ou créez un nouveau compte.

Configurer Azure DevOps Services pour SAP Deployment Automation Framework

Vous pouvez utiliser le script suivant pour effectuer une installation de base d’Azure DevOps Services pour l’infrastructure d’automatisation de déploiement SAP.

Ouvrez PowerShell ISE et copiez le script suivant et mettez à jour les paramètres pour qu’ils correspondent à votre environnement.

    $Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
    $Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
    $Env:SDAF_CONTROL_PLANE_CODE = "MGMT"
    $Env:SDAF_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    $Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"

    $Env:MSI_OBJECT_ID = $null

    $branchName = "main"
        
    $UniqueIdentifier = "SDAF" + $ShortCode
    
    if ($Env:ARM_TENANT_ID.Length -eq 0) {
      az login --output none --only-show-errors --scope https://graph.microsoft.com//.default
    }
    else {
      az login --output none --tenant $Env:ARM_TENANT_ID --only-show-errors --scope https://graph.microsoft.com//.default
    }

    az config set extension.use_dynamic_install=yes_without_prompt --only-show-errors

    az extension add --name azure-devops --only-show-errors

    $differentTenant = Read-Host "Is your Azure DevOps organization hosted in a different tenant than the one you are currently logged in to? y/n"
    if ($differentTenant -eq 'y') {
        $env:AZURE_DEVOPS_EXT_PAT = Read-Host "Please enter your Personal Access Token (PAT) with permissions to add new projects, manage agent pools to the Azure DevOps organization $Env:ADO_Organization"
        try {
            az devops project list
        }
        catch {
            $_
        }
    }
    
    $confirmationWebAppDeployment = Read-Host "Do you want to use the Web Application for editing the configuration files (recommended) y/n?"
    if ($confirmationWebAppDeployment -eq 'y') {
        $Env:SDAF_WEBAPP = "true"
        $confirmation = Read-Host "Do you want to create a new Application registration (needed for the Web Application) y/n?"
        if ($confirmation -eq 'y') {
            $Env:SDAF_APP_NAME = "SDAF " + $UniqueIdentifier + " SDAF Control Plane"
        }
        else {
            $Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
        }
    }
    else {
        $Env:SDAF_WEBAPP = "false"
    }
    
    $Env:SDAF_AuthenticationMethod = 'Managed Identity'
    
    $confirmationDeployment = Read-Host "Do you want to use Managed Identities for the deployment (recommended) y/n?"
    
    if ($confirmationDeployment -eq 'n') {
        $Env:SDAF_AuthenticationMethod = 'Service Principal'
         
        $confirmation = Read-Host "Do you want to create a new Service Principal for the Control plane y/n?"
        if ($confirmation -eq 'y') {
            $Env:SDAF_MGMT_SPN_NAME = "SDAF " + $UniqueIdentifier + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
        }
        else {
            $Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane Service Principal Name"
        }
        
    }
        
    if ( $PSVersionTable.Platform -eq "Unix") {
        if ( Test-Path "SDAF") {
        }
        else {
            $sdaf_path = New-Item -Path "SDAF" -Type Directory
        }
    }
    else {
        $sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
        if ( Test-Path $sdaf_path) {
        }
        else {
            New-Item -Path $sdaf_path -Type Directory
        }
    }
        
    Set-Location -Path $sdaf_path
        
    if ( Test-Path "New-SDAFDevopsProject.ps1") {
        if ( $PSVersionTable.Platform -eq "Unix") {
            Remove-Item "New-SDAFDevopsProject.ps1"
        }
        else {
            Remove-Item ".\New-SDAFDevopsProject.ps1"
        }
    }
        
    Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile New-SDAFDevopsProject.ps1 
    
    
    if ( $PSVersionTable.Platform -eq "Unix") {
        Unblock-File ./New-SDAFDevopsProject.ps1
        ./New-SDAFDevopsProject.ps1
    }
    else {
        Unblock-File .\New-SDAFDevopsProject.ps1
        .\New-SDAFDevopsProject.ps1
    }
    

Exécutez le script et suivez les instructions. Le script ouvre des fenêtres de navigateur pour l’authentification et l’exécution de tâches dans le projet Azure DevOps.

Vous pouvez choisir d’exécuter le code directement à partir de GitHub ou d’importer une copie du code dans votre projet Azure DevOps.

Pour vérifier que le projet a été créé, accédez au portail Azure DevOps et sélectionnez le projet. Vérifiez que le référentiel a été rempli et que les pipelines ont été créés.

Important

Effectuez les étapes suivantes sur votre station de travail locale. Vérifiez également que vous disposez de la dernière version d’Azure CLI en exécutant la commande az upgrade.

Configurer des artefacts Azure DevOps Services pour une nouvelle zone de charge de travail

Utilisez le script suivant pour déployer les artefacts nécessaires pour prendre en charge une nouvelle zone de charge de travail. Ce processus crée le groupe de variables et la connexion de service dans Azure DevOps, et, éventuellement, le principal du service de déploiement.

Ouvrez PowerShell ISE et copiez le script suivant et mettez à jour les paramètres pour qu’ils correspondent à votre environnement.

    $Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
    $Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
    $Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
    $Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
    
    if ( $PSVersionTable.Platform -eq "Unix") {
        if ( Test-Path "SDAF") {
        }
        else {
            $sdaf_path = New-Item -Path "SDAF" -Type Directory
        }
    }
    else {
        $sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
        if ( Test-Path $sdaf_path) {
        }
        else {
            New-Item -Path $sdaf_path -Type Directory
        }
    }

    $branchName = "main"
    
    Set-Location -Path $sdaf_path
    
    if ( Test-Path "New-SDAFDevopsWorkloadZone.ps1") {
        remove-item .\New-SDAFDevopsWorkloadZone.ps1
    }
    
    Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsWorkloadZone.ps1 -OutFile .\New-SDAFDevopsWorkloadZone.ps1 ; .\New-SDAFDevopsWorkloadZone.ps1
    

Créer un exemple de configuration de plan de contrôle

Vous pouvez exécuter le Create Sample Deployer Configuration pipeline pour créer un exemple de configuration pour le plan de contrôle. Quand elle est en cours d’exécution, choisissez la région Azure appropriée. Vous pouvez également contrôler si vous souhaitez déployer le Pare-feu Azure et Azure Bastion.

Configuration manuelle d’Azure DevOps Services pour SAP Deployment Automation Framework

Vous pouvez configurer manuellement Azure DevOps Services pour SAP Deployment Automation Framework.

Créer un projet

Vous pouvez utiliser Azure Repos pour stocker le code à partir du référentiel GitHub sap-automation et des fichiers de configuration de l’environnement.

Ouvrez Azure DevOps et créez un projet en sélectionnant Nouveau projet et en entrant les détails du projet. Le projet contient le référentiel de contrôle de code source Azure Repos et Azure Pipelines pour effectuer des activités de déploiement.

Si vous ne voyez pas Nouveau projet, vérifiez que vous disposez des autorisations nécessaires pour créer de nouveaux projets dans l’organisation.

Enregistrez l’URL du projet.

Importer le référentiel

Commencez par importer le référentiel GitHub de l’infrastructure d’automatisation d’amorçage du déploiement SAP dans Azure Repos.

Accédez à la section Référentiels et sélectionnez Importer un référentiel. Importez le https://github.com/Azure/sap-automation-bootstrap.git référentiel dans Azure DevOps. Pour plus d’informations, consultez Importer un référentiel.

Si vous ne parvenez pas à importer un référentiel, vous pouvez créer le référentiel manuellement. Ensuite, vous pouvez importer le contenu à partir du dépôt GitHub SAP Deployment Automation Framework Bootstrap vers celui-ci.

Créer le référentiel pour l’importation manuelle

Effectuez cette étape uniquement si vous ne parvenez pas à importer le référentiel directement.

Pour créer le référentiel d’espaces de travail , dans la section Repos , sous Paramètres du projet, sélectionnez Créer.

Choisissez le référentiel, entrez Git et fournissez un nom pour le référentiel. Par exemple, utilisez le référentiel de configuration SAP.

Cloner le référentiel

Pour fournir une fonctionnalité d’édition plus complète du contenu, vous pouvez cloner le référentiel dans un dossier local et modifier le contenu localement.

Pour cloner le référentiel dans un dossier local, dans la section Repos du portail, sous Fichiers, sélectionnez Cloner. Pour plus d’informations, consultez Cloner un référentiel.

Capture d’écran montrant comment cloner le référentiel.

Importer manuellement le contenu du référentiel à l’aide d’un clone local

Vous pouvez également télécharger manuellement le contenu à partir du référentiel SAP Deployment Automation Framework et l’ajouter à votre clone local du référentiel Azure DevOps.

Accédez au https://github.com/Azure/SAP-automation-samples référentiel et téléchargez le contenu du référentiel en tant que fichier .zip. Sélectionnez Code et choisissez Télécharger le fichier ZIP.

Copiez le contenu du fichier .zip dans le dossier racine de votre clone local.

Ouvrez le dossier local dans Visual Studio Code. Vous devriez voir que les modifications doivent être synchronisées, ce que l'indicateur et l'icône de contrôle de code source affichée ici signalent.

Capture d’écran montrant que le code source est modifié.

Sélectionnez l’icône de contrôle de code source et fournissez un message sur la modification. Par exemple, entrez Importer à partir de GitHub et sélectionnez Ctrl+Entrée pour valider les modifications. Ensuite, sélectionnez Synchroniser les modifications pour synchroniser les modifications apportées au référentiel.

Choisir la source du code Terraform et Ansible

Vous pouvez exécuter le code SAP Deployment Automation Framework directement à partir de GitHub ou l’importer localement.

Exécuter le code à partir d’un référentiel local

Si vous souhaitez exécuter le code SAP Deployment Automation Framework à partir du projet Azure DevOps local, vous devez créer un référentiel de code distinct et un référentiel de configuration dans le projet Azure DevOps :

  • Nom du référentiel de configuration : Same as the DevOps Project name. La source est https://github.com/Azure/sap-automation-bootstrap.git.
  • Nom du référentiel de code : sap-automation. La source est https://github.com/Azure/sap-automation.git.
  • Nom de l’exemple et du référentiel de modèles : sap-samples. La source est https://github.com/Azure/sap-automation-samples.git.

Exécuter le code directement à partir de GitHub

Si vous souhaitez exécuter le code directement à partir de GitHub, vous devez fournir des informations d’identification pour qu’Azure DevOps puisse extraire le contenu de GitHub.

Créer la connexion de service GitHub

Pour extraire le code de GitHub, vous avez besoin d’une connexion de service GitHub. Pour plus d’informations, consultez Gérer les connexions de service.

Pour créer la connexion de service, accédez à Paramètres du projet et, sous la section Pipelines , accédez aux connexions de service.

Capture d’écran montrant comment créer une connexion de service pour GitHub.

Sélectionnez GitHub comme type de connexion de service. Sélectionnez Azure Pipelines dans la liste déroulante Configuration OAuth .

Sélectionnez Autoriser pour vous connecter à GitHub.

Entrez un nom de connexion de service, par exemple, connexion SDAF à GitHub. Assurez-vous que la case Autoriser l’accès à tous les pipelines est cochée. Sélectionnez Enregistrer pour enregistrer la connexion au service.

Configurer l’application web

Le cadre d'automatisation peut provisionner une application web dans le cadre du plan de gestion pour aider à gérer la zone de charge de travail SAP et les fichiers de configuration système. Si vous souhaitez utiliser l’application web, vous devez d’abord créer une inscription d’application à des fins d’authentification. Ouvrez Azure Cloud Shell et exécutez les commandes suivantes.

Remplacez MGMT par votre environnement, si nécessaire.

echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json

TF_VAR_app_registration_app_id=$(az ad app create --display-name MGMT-webapp-registration --enable-id-token-issuance true --sign-in-audience AzureADMyOrg --required-resource-access @manifest.json --query "appId" | tr -d '"')

echo $TF_VAR_app_registration_app_id

az ad app credential reset --id $TF_VAR_app_registration_app_id --append --query "password"

rm manifest.json

Enregistrez l’ID d’inscription de l’application et les valeurs de mot de passe pour une utilisation ultérieure.

Créer Azure Pipelines

Azure Pipelines est implémenté en tant que fichiers YAML. Ils sont stockés dans le dossier deploy/pipelines dans le référentiel.

Pipeline de déploiement du plan de contrôle

Créez le pipeline de déploiement du plan de contrôle. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin pipelines/01-deploy-control-plane.yml
Nom Déploiement du plan de contrôle

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer/Déplacer dans le menu points de suspension à droite et renommez le pipeline en tant que déploiement du plan de contrôle.

Pipeline de déploiement de zone de charge de travail SAP

Créez le pipeline de zone de charge de travail SAP. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin pipelines/02-sap-workload-zone.yml
Nom Déploiement de zone de charge de travail SAP

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer/Déplacer à partir du menu des ellipses à droite et renommez le pipeline en déploiement de zone de charges de travail SAP.

Pipeline de déploiement du système SAP

Créez le pipeline de déploiement du système SAP. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin pipelines/03-sap-system-deployment.yml
Nom Déploiement du système SAP (infrastructure)

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer/Déplacer à partir du menu à trois points à droite et renommez le pipeline en tant que déploiement de système SAP (infrastructure).

Pipeline d’acquisition de logiciels SAP

Créez le pipeline d’acquisition de logiciels SAP. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin deploy/pipelines/04-sap-software-download.yml
Nom Acquisition de logiciels SAP

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer/Déplacer dans le menu des trois points à droite et renommez le pipeline en "acquisition de logiciel SAP".

Pipeline d’installation de logiciels et de configuration SAP

Créez le pipeline d’installation logicielle et de configuration SAP. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin pipelines/05-DB-and-SAP-installation.yml
Nom Configuration et installation de SAP

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer/Déplacer dans le menu points de suspension à droite et renommez le pipeline en tant que configuration SAP et installation logicielle.

Pipeline de suppression du déploiement

Créez le pipeline de suppression du déploiement. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin pipelines/10-remover-terraform.yml
Nom Suppression du déploiement

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer ou Déplacer dans le menu à trois points à droite et renommez le pipeline en Suppression de déploiement.

Pipeline de suppression du plan de contrôle

Créez le pipeline de suppression du déploiement du plan de contrôle. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin pipelines/12-remove-control-plane.yml
Nom Suppression du plan de contrôle

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer/Déplacer dans le menu à trois points à droite et renommez le pipeline Suppression du Plan de Contrôle.

Pipeline de suppression du déploiement en utilisant Azure Resource Manager

Créez le pipeline de suppression du déploiement Azure Resource Manager. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin pipelines/11-remover-arm-fallback.yml
Nom Suppression du déploiement à l’aide d’Azure Resource Manager

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer/Déplacer dans le menu points de suspension à droite et renommez le pipeline en tant que Enlèvement du déploiement en utilisant un processeur ARM.

Remarque

Utilisez uniquement ce pipeline comme dernier recours. La suppression des groupes de ressources laisse des restes susceptibles de compliquer les redéploiements.

Pipeline de mise à jour du référentiel

Créez le pipeline de mise à jour du référentiel. Dans la section Pipelines , sélectionnez Nouveau pipeline. Sélectionnez Git Azure Repos comme source pour votre code. Configurez votre pipeline pour utiliser un fichier YAML Azure Pipelines existant. Spécifiez le pipeline avec les paramètres suivants :

Réglage Valeur
Dépôt « Dépôt racine » (qui est identique au nom du projet)
Branche principal
Chemin pipelines/20-update-ado-repository.yml
Nom Actualisateur de référentiel

Sauver le pipeline. Pour afficher Enregistrer, sélectionnez le chevron à côté de Exécuter. Accédez à la section Pipelines et sélectionnez le pipeline. Choisissez Renommer/Déplacer à partir du menu à trois points à droite et renommez le pipeline en Mise à jour du référentiel.

Ce pipeline doit être utilisé lorsqu’il existe une mise à jour dans le référentiel sap-automation que vous souhaitez utiliser.

Importer la tâche de nettoyage à partir de Visual Studio Marketplace

Les pipelines utilisent une tâche personnalisée pour effectuer des activités de nettoyage après le déploiement. Vous pouvez installer la tâche personnalisée depuis Post Build Cleanup. Installez-le dans votre organisation Azure DevOps avant d’exécuter les pipelines.

Préparations pour un agent autohébergé

  1. Créez un pool d’agents en accédant aux paramètres organisationnels. Dans la section Pipelines, sélectionnez Pools> d’agentsAjouter un pool. Sélectionnez Auto-hébergé comme type de pool. Nommez le pool de manière cohérente avec l’environnement du plan de contrôle. Par exemple, utilisez MGMT-WEEU-POOL. Vérifiez que Accorder l'autorisation d'accès à tous les pipelines est sélectionnée et sélectionnez Créer pour créer le pool.

  2. Connectez-vous avec le compte d’utilisateur que vous prévoyez d’utiliser dans votre organisation Azure DevOps .

  3. Dans votre page d’accueil, ouvrez vos paramètres utilisateur et sélectionnez Jetons d’accès personnels.

    Diagramme montrant la création d’un jeton d’accès personnel.

  4. Créez un jeton d’accès personnel avec ces paramètres :

    • Pools d’agents : sélectionnez Lecture et gestion.

    • Build : sélectionnez Lecture et exécution.

    • Code : sélectionnez Lecture et écriture.

    • Groupes de variables : sélectionnez Lire, créer et gérer.

      Notez la valeur du jeton créé.

    Diagramme montrant les attributs du jeton d’accès personnel.

Définitions de variables

Les pipelines de déploiement sont configurés pour utiliser un ensemble de valeurs de paramètre prédéfinies définies à l’aide de groupes de variables.

Variables courantes

Les variables courantes sont utilisées par tous les pipelines de déploiement. Ils sont stockés dans un groupe de variables appelé SDAF-General.

Créez un groupe de variables nommé SDAF-General à l’aide de la page Bibliothèque dans la section Pipelines . Ajoutez les variables suivantes :

Variable Valeur Remarques
Deployment_Configuration_Path ESPACES DE TRAVAIL Pour tester l’exemple de configuration, utilisez samples/WORKSPACES plutôt que WORKSPACES.
Branche principal
S-Username <SAP Support user account name>
Mot de passe S <SAP Support user password> Modifiez le type de variable en secret en sélectionnant l’icône de verrouillage.
tf_version 1.6.0 La version de Terraform à utiliser. Consultez Terraform Download.

Enregistrez les variables.

Vous pouvez également utiliser l’interface CLI Azure DevOps pour configurer les groupes.

s-user="<SAP Support user account name>"
s-password="<SAP Support user password>"

az devops login

az pipelines variable-group create --name SDAF-General --variables ANSIBLE_HOST_KEY_CHECKING=false Deployment_Configuration_Path=WORKSPACES Branch=main S-Username=$s-user S-Password=$s-password tf_version=1.3.0 --output yaml

N’oubliez pas d’attribuer des autorisations pour tous les pipelines à l’aide des autorisations de pipeline.

Variables spécifiques à l’environnement

Étant donné que chaque environnement peut avoir des informations d’identification de déploiement différentes, vous devez créer un groupe de variables par environnement. Par exemple, utilisez SDAF-MGMT,SDAF-DEV, et SDAF-QA.

Créez un groupe de variables nommé SDAF-MGMT pour l’environnement du plan de contrôle à l’aide de la page Bibliothèque de la section Pipelines . Ajoutez les variables suivantes :

Variable Valeur Remarques
Agent Azure Pipelines ou le nom du pool d’agents Ce pool est créé à une étape ultérieure.
CP_ARM_CLIENT_ID Service principal application ID
CP_ARM_OBJECT_ID Service principal object ID
CP_ARM_CLIENT_SECRET Service principal password Modifiez le type de variable en secret en sélectionnant l’icône de verrouillage.
CP_ARM_SUBSCRIPTION_ID Target subscription ID
CP_ARM_TENANT_ID Tenant ID pour le principal de service
AZURE_CONNECTION_NAME Nom de connexion précédemment créé
sap_fqdn Nom de domaine complet SAP, par exemple, sap.contoso.net Nécessaire uniquement si le DNS privé n’est pas utilisé.
FENCING_SPN_ID Service principal application ID pour l’agent de délimitation Obligatoire pour les déploiements hautement disponibles qui utilisent un principal de service pour l’agent d’isolation.
FENCING_SPN_PWD Service principal password pour l’agent de délimitation Obligatoire pour les déploiements hautement disponibles qui utilisent un principal de service pour l’agent d’isolation.
FENCING_SPN_TENANT Service principal tenant ID pour l’agent de délimitation Obligatoire pour les déploiements hautement disponibles qui utilisent un principal de service pour l’agent d’isolation.
Petite tape <Personal Access Token> Utilisez le jeton personnel défini à l’étape précédente.
PISCINE <Agent Pool name> Pool d’agents à utiliser pour cet environnement.
APP_REGISTRATION_APP_ID App registration application ID Obligatoire si vous déployez l’application web.
WEB_APP_CLIENT_SECRET App registration password Obligatoire si vous déployez l’application web.
SDAF_GENERAL_GROUP_ID ID de groupe du groupe SDAF-General L’ID peut être récupéré à partir du paramètre variableGroupId d’URL lors de l’accès au groupe de variables à l’aide d’un navigateur. Par exemple : variableGroupId=8.
WORKLOADZONE_PIPELINE_ID ID du pipeline SAP workload zone deployment L’ID peut être récupéré à partir du paramètre definitionId d’URL de la page de pipeline dans Azure DevOps. Par exemple : definitionId=31.
SYSTEM_PIPELINE_ID ID du pipeline SAP system deployment (infrastructure) L’ID peut être récupéré à partir du paramètre definitionId d’URL de la page de pipeline dans Azure DevOps. Par exemple : definitionId=32.

Enregistrez les variables.

N’oubliez pas d’attribuer des autorisations pour tous les pipelines à l’aide des autorisations de pipeline.

Quand vous utilisez l’application web, vérifiez que le service de build dispose au moins des autorisations de contribution.

Vous pouvez utiliser la fonctionnalité clone pour créer le groupe de variables d’environnement suivant. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID et SYSTEM_PIPELINE_ID sont uniquement nécessaires pour le groupe SDAF-MGMT.

Créer une connexion de service

Pour supprimer les ressources Azure, vous avez besoin d’une connexion de service Azure Resource Manager. Pour plus d’informations, consultez Gérer les connexions de service.

Pour créer la connexion de service, accédez aux paramètres du projet. Dans la section Pipelines , sélectionnez Connexions de service.

Capture d’écran montrant comment créer une connexion de service.

Sélectionnez Azure Resource Manager comme type de connexion de service et principal de service (manuel) comme méthode d’authentification. Entrez l’abonnement cible, qui est généralement l’abonnement au plan de contrôle. Entrez les détails du principal du service. Sélectionnez Vérifier pour valider les informations d’identification. Pour plus d’informations sur la création d’un principal de service, consultez Créer un principal de service.

Entrez un nom de connexion de service, par exemple, utilisez Connection to MGMT subscription. Assurez-vous que la case Autoriser l’accès à tous les pipelines est cochée. Sélectionnez Vérifier et enregistrer pour enregistrer la connexion de service.

Autorisations

La plupart des pipelines ajoutent des fichiers à Azure Repos et nécessitent donc des autorisations d’extraction. Dans Paramètres du projet, sous la section Référentiels , sélectionnez l’onglet Sécurité du référentiel de code source et attribuez des autorisations De contribution à l’objet Build Service.

Capture d’écran montrant les autorisations du référentiel.

Déployer le plan de contrôle

Les pipelines nouvellement créés peuvent ne pas être visibles dans la vue par défaut. Sélectionnez l’onglet Récent et revenez à Tous les onglets pour afficher les nouveaux pipelines.

Sélectionnez le pipeline de déploiement du plan de contrôle et entrez les noms de configuration du déployeur et de la bibliothèque SAP. Sélectionnez Exécuter pour déployer le plan de contrôle. Veillez à cocher La case Déployer l’application web de configuration si vous souhaitez configurer l’application web de configuration.

Configurer l’agent auto-hébergé Azure DevOps Services manuellement

La configuration manuelle n’est nécessaire que si l’agent Azure DevOps Services n’est pas configuré automatiquement. Vérifiez que le pool d’agents est vide avant de continuer.

Pour vous connecter au déployeur :

  1. Connectez-vous au portail Azure.

  2. Accédez au groupe de ressources qui contient la machine virtuelle du déployeur.

  3. Connectez-vous à la machine virtuelle à l’aide d’Azure Bastion.

  4. Le nom d’utilisateur par défaut est azureadm.

  5. Sélectionnez Clé privée SSH à partir d’Azure Key Vault.

  6. Sélectionnez l’abonnement qui contient le plan de contrôle.

  7. Sélectionnez le coffre de clés du système de déploiement.

  8. Dans la liste des secrets, sélectionnez le secret qui se termine par -sshkey.

  9. Connectez-vous à la machine virtuelle.

Exécutez le script suivant pour configurer l’éditeur de déploiement :

mkdir -p ~/Azure_SAP_Automated_Deployment

cd ~/Azure_SAP_Automated_Deployment

git clone https://github.com/Azure/sap-automation.git

cd sap-automation/deploy/scripts

./configure_deployer.sh

Redémarrez le déployeur, reconnectez-vous et exécutez le script suivant pour configurer l’agent Azure DevOps :

cd ~/Azure_SAP_Automated_Deployment/

$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh

Acceptez la licence et, lorsque vous êtes invité à entrer l’URL du serveur, entrez l’URL que vous avez capturée lors de la création du projet Azure DevOps. Pour l’authentification, sélectionnez PAT et entrez la valeur du jeton à l’étape précédente.

Lorsque vous y êtes invité, entrez le nom du pool d’applications que vous avez créé à l’étape précédente. Acceptez le nom de l’agent par défaut et le nom du dossier de travail par défaut. L’agent est maintenant configuré et démarre.

Déployer l’application web du plan de contrôle

La sélection du deploy the web app infrastructure paramètre lorsque vous exécutez le pipeline de déploiement du plan de contrôle provisionne l’infrastructure nécessaire pour l’hébergement de l’application web. Le pipeline Déployer une application web publie le logiciel de l’application sur cette infrastructure.

Attendez que le déploiement se termine. Sélectionnez l’onglet Extensions et suivez les instructions pour finaliser la configuration. Mettez à jour les valeurs reply-url de l’enregistrement de l’application.

Suite à l’exécution du pipeline du plan de contrôle, une partie de l’URL de l’application web nécessaire est stockée dans une variable nommée WEBAPP_URL_BASE dans votre groupe de variables spécifique à l’environnement. À tout moment, vous pouvez mettre à jour les URL de l’application web d’application inscrite à l’aide de la commande suivante.

webapp_url_base=<WEBAPP_URL_BASE>
az ad app update --id $TF_VAR_app_registration_app_id --web-home-page-url https://${webapp_url_base}.azurewebsites.net --web-redirect-uris https://${webapp_url_base}.azurewebsites.net/ https://${webapp_url_base}.azurewebsites.net/.auth/login/aad/callback

Vous devez également accorder des autorisations de lecteur à l’identité managée affectée par le système App Service. Accédez à la ressource App Service. Sur le côté gauche, sélectionnez Identité. Sous l’onglet Affecté par le système, sélectionnez Attributions de rôles Azure>.Ajouter une attribution de rôle. Sélectionnez Abonnement comme étendue et Lecteur comme rôle. Ensuite, sélectionnez Enregistrer. Sans cette étape, la fonctionnalité de liste déroulante de l’application web ne fonctionnera pas.

Vous devez maintenant être en mesure de visiter l’application web et de l’utiliser pour déployer des zones de charge de travail SAP et une infrastructure système SAP.

Étape suivante