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 ID Microsoft Entra. Pour créer un compte, ouvrez Azure DevOps et connectez-vous ou créez un compte.
Configurer Azure DevOps Services pour l’infrastructure d’automatisation de déploiement SAP
Vous pouvez utiliser le script suivant pour effectuer une installation de base d’Azure DevOps Services pour SAP Deployment Automation Framework.
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 pour effectuer des 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 dépôt a été rempli et que les pipelines ont été créés.
Important
Exécutez 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 az upgrade
commande.
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 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 sap Deployment Automation Framework 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. Vous pouvez ensuite importer le contenu à partir du dépôt GitHub GitHub Deployment Automation Framework vers celui-ci.
Créer le référentiel pour une 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 dépôt
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.
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 devez voir que les modifications doivent être synchronisées par l’indicateur par l’icône de contrôle de code source affichée ici.
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 esthttps://github.com/Azure/sap-automation-bootstrap.git
. - Nom du référentiel de code :
sap-automation
. La source esthttps://github.com/Azure/sap-automation.git
. - Nom de l’exemple et du référentiel de modèles :
sap-samples
. La source esthttps://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 à Project Paramètres et, sous la section Pipelines, accédez aux connexions de service.
Sélectionnez GitHub comme type de connexion de service. Sélectionnez Azure Pipelines dans la liste déroulante Configuration OAuth.
Sélectionnez Autoriser à se connecter à GitHub.
Entrez un nom de connexion de service, par exemple, SDAF Connecter ion vers 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 framework d’automatisation provisionne éventuellement une application web dans le cadre du plan de contrôle pour fournir de l’aide sur la zone de charge de travail SAP et les fichiers de configuration du 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-le 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 les valeurs de mot de passe et d’ID d’inscription de l’application en vue d’une utilisation ultérieure.
Créer des pipelines 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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | pipelines/01-deploy-control-plane.yml |
Name | Déploiement du plan de contrôle |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis 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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | pipelines/02-sap-workload-zone.yml |
Name | Déploiement de la zone de charge de travail SAP |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis sélectionnez le pipeline. Choisissez Renommer/Déplacer à partir du menu points de suspension à droite et renommez le pipeline en tant que déploiement de zone de charge 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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | pipelines/03-sap-system-deployment.yml |
Name | Déploiement de système SAP (infrastructure) |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis sélectionnez le pipeline. Choisissez Renommer/Déplacer à partir du menu points de suspension à 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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | deploy/pipelines/04-sap-software-download.yml |
Name | Acquisition de logiciels SAP |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis sélectionnez le pipeline. Choisissez Renommer/Déplacer à partir du menu points de suspension à droite et renommez le pipeline en tant qu’acquisition logicielle SAP.
Configuration SAP et pipeline d’installation des logiciels
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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | pipelines/05-DB-and-SAP-installation.yml |
Name | Configuration et installation de SAP |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis 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 de 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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | pipelines/10-remover-terraform.yml |
Name | Suppression du déploiement |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis sélectionnez le pipeline. Choisissez Renommer/Déplacer dans le menu points de suspension à droite et renommez le pipeline en tant que suppression de déploiement.
Pipeline de suppression du plan de contrôle
Créez le pipeline de suppression 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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | pipelines/12-remove-control-plane.yml |
Name | Suppression du plan de contrôle |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis sélectionnez le pipeline. Choisissez Renommer/Déplacer dans le menu points de suspension à droite et renommez le pipeline en tant que suppression du plan de contrôle.
Pipeline de suppression de déploiement à l’aide d’Azure Resource Manager
Créez le pipeline Azure Resource Manager de suppression de 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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | pipelines/11-remover-arm-fallback.yml |
Nom | Suppression du déploiement à l’aide d’Azure Resource Manager |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis sélectionnez le pipeline. Choisissez Renommer/Déplacer dans le menu points de suspension à droite et renommez le pipeline en tant que suppression de déploiement à l’aide du 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 :
Paramètre | Valeur |
---|---|
Référentiel | « Dépôt racine » (identique au nom du projet) |
Branche | main |
Chemin d’accès | pipelines/20-update-ado-repository.yml |
Name | Mise à jour du référentiel |
Enregistrez le pipeline. Pour afficher Enregistrer, sélectionnez le chevron en regard de l’exécution. Accédez à la section Pipelines, puis sélectionnez le pipeline. Choisissez Renommer/Déplacer à partir du menu points de suspension à droite et renommez le pipeline en tant que 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 propre up à 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 à partir du nettoyage post-build. Installez-le dans votre organisation Azure DevOps avant d’exécuter les pipelines.
Préparations pour un agent auto-hébergé
Créez un pool d’agents en accédant à l’Paramètres organisationnelle. Dans la section Pipelines, sélectionnez Pools>d’agents Ajouter un pool. Sélectionnez Auto-hébergé comme type de pool. Nommez le pool à aligner avec l’environnement du plan de contrôle. Par exemple, utilisez
MGMT-WEEU-POOL
. Vérifiez que l’autorisation Accorder l’accès à tous les pipelines est sélectionnée et sélectionnez Créer pour créer le pool.Connectez-vous avec le compte d’utilisateur que vous prévoyez d’utiliser dans votre organisation Azure DevOps .
Dans votre page d’accueil, ouvrez vos paramètres utilisateur et sélectionnez Jetons d’accès personnels.
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éé.
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 communes
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 | Notes |
---|---|---|
Deployment_Configuration_Path | ESPACES DE TRAVAIL | Pour tester l’exemple de configuration, utilisez samples/WORKSPACES plutôt que WORKSPACES. |
Branche | main | |
S-Username | <SAP Support user account name> |
|
S-Password | <SAP Support user password> |
Modifiez le type de variable en secret en sélectionnant l’icône de verrouillage. |
tf_version |
1.6.0 | Version de Terraform à utiliser. Consultez le téléchargement terraform. |
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 | Notes |
---|---|---|
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 créé précédemment | |
sap_fqdn | Nom de domaine complet SAP, par exemple, sap.contoso.net |
Nécessaire uniquement si DNS privé n’est pas utilisé. |
FENCING_SPN_ID | Service principal application ID pour l’agent d’escrime |
Requis pour les déploiements à haut niveau de disponibilité qui utilisent un principal de service pour l’agent d’escrime. |
FENCING_SPN_PWD | Service principal password pour l’agent d’escrime |
Requis pour les déploiements à haut niveau de disponibilité qui utilisent un principal de service pour l’agent d’escrime. |
FENCING_SPN_TENANT | Service principal tenant ID pour l’agent d’escrime |
Requis pour les déploiements à haut niveau de disponibilité qui utilisent un principal de service pour l’agent d’escrime. |
Jeton d’accès personnel | <Personal Access Token> |
Utilisez le jeton personnel défini à l’étape précédente. |
POOL | <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 SAP workload zone deployment pipeline |
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 SAP system deployment (infrastructure) pipeline |
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.
Lorsque vous utilisez l’application web, vérifiez que le service de build dispose au moins des autorisations De contribution.
Vous pouvez utiliser la fonctionnalité de clonage 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 à Project Paramètres. Dans la section Pipelines , sélectionnez Connexions 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 de 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 au service.
Autorisations
La plupart des pipelines ajoutent des fichiers à Azure Repos et nécessitent donc des autorisations d’extraction. Dans Project Paramètres, 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
.
Déployer le plan de contrôle
Les pipelines nouvellement créés peuvent ne pas être visibles dans l’affichage 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 à sélectionner l’application web déployer l’application web de configuration case activée box 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 se connecter au système de déploiement :
Connectez-vous au portail Azure.
Accédez au groupe de ressources contenant la machine virtuelle du système de déploiement.
Connectez-vous à la machine virtuelle à l’aide d’Azure Bastion.
Le nom d’utilisateur par défaut est azureadmin.
Sélectionnez Clé privée SSH d’Azure Key Vault.
Sélectionnez l’abonnement contenant le plan de contrôle.
Sélectionnez le coffre de clés du système de déploiement.
Dans la liste des secrets, sélectionnez le secret qui se termine par -sshkey.
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 par défaut de l’agent 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 reply-url
valeurs de l’inscription 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.