Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo configurar Azure DevOps Services para ejecutar canalizaciones de SAP Deployment Automation Framework. Esta configuración le ayuda a estandarizar y repetir las tareas de implementación de infraestructura de SAP, adquisición de software y configuración en entornos.
Configure los recursos del proyecto de Azure DevOps, las conexiones de servicio, las canalizaciones, los permisos y los grupos de variables que requiere el marco de trabajo. Después de completar estos pasos, puede ejecutar implementaciones y operaciones de entorno sap en curso desde Azure DevOps Services.
Elección de un método de configuración
Use esta tabla para elegir la ruta de instalación de su entorno.
| Método | Mejor cuando | Resultado principal |
|---|---|---|
| Scripts de configuración automática | Quiere arrancar rápidamente los artefactos del proyecto y usar las configuraciones predeterminadas del marco. | Los scripts crean el proyecto de Azure DevOps, las conexiones de servicio y los recursos de implementación de línea base. |
| Configuración manual de Azure DevOps | Necesita control total sobre la importación de repositorios, las conexiones de servicio y las definiciones de canalización. | Cree y configure cada componente de Azure DevOps paso a paso. |
Prerrequisitos
- Una suscripción y permisos de Azure para crear recursos, identidades administradas y entidades de servicio.
- Una organización de Azure DevOps donde puede crear proyectos, canalizaciones, conexiones de servicio y grupos de variables.
- Cli de Azure instalada y actualizada en la estación de trabajo local (
az upgrade). - Windows PowerShell para ejecutar los scripts proporcionados.
- Credenciales para el soporte técnico de SAP (usuario S) si tiene previsto ejecutar procesos de adquisición de software SAP.
Inicio de sesión en Azure DevOps Services
Para usar Azure DevOps Services, necesita una organización de Azure DevOps. Una organización se usa para conectar grupos de proyectos relacionados. Use su cuenta profesional o educativa para conectar automáticamente su organización a su Microsoft Entra ID. Para crear una cuenta, abra Azure DevOps e inicie sesión o cree una cuenta.
Configuración de Azure DevOps mediante scripts de automatización
Use este procedimiento cuando desee que los scripts del marco creen el proyecto de Azure DevOps, las conexiones de servicio y los artefactos de línea de base para el plano de control.
Abra PowerShell y copie el siguiente script.
Actualice todos los valores de parámetro para que coincida con el entorno.
Ejecute el script. El script abre las ventanas del explorador para la autenticación y para las tareas de Azure DevOps.
Importante
Ejecute los pasos siguientes en la estación de trabajo local. Asegúrese también de que tiene instalada la CLI de Azure más reciente mediante la ejecución del comando
az upgrade.# Azure DevOps Configuration $AzureDevOpsOrganizationUrl = "https://dev.azure.com/ORGANIZATIONNAME" # Azure Infrastructure Configuration $ControlPlaneCode = "MGMT" $ControlPlaneRegionCode = "SECE" $Location = "swedencentral" $ControlPlaneName = "$ControlPlaneCode-$ControlPlaneRegionCode-DEP01" $AzureDevOpsProjectName = "SDAF-" + $ControlPlaneCode + "-" + $ControlPlaneRegionCode $ControlPlaneSubscriptionId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" $TenantId = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" # SAP Support Credentials $Env:SUserName = "SXXXXXXXX" $Env:Password = Read-Host "Please enter your SUserName password" -AsSecureString $MSIResourceGroupName = "SDAF-MSIs" # Azure DevOps Agent Configuration $AgentPoolName = "SDAF-$ControlPlaneCode-$ControlPlaneRegionCode-POOL" #Repository information $repo = "Azure/sap-automation" $branch = "main" Remove-Module SDAFUtilities -ErrorAction SilentlyContinue # Import required modules $url="https://raw.githubusercontent.com/$repo/refs/heads/$branch/deploy/scripts/pwsh/Output/SDAFUtilities/SDAFUtilities.psm1" Write-Host "Downloading SDAFUtilities module from $url" -ForegroundColor Green Invoke-WebRequest -Uri $url -OutFile "SDAFUtilities.psm1" Unblock-File -Path ".\SDAFUtilities.psm1" Import-Module ".\SDAFUtilities.psm1" # Create Managed Identity $ManagedServiceIdentity = New-SDAFUserAssignedIdentity ` -ManagedIdentityName "$ControlPlaneName" ` -ResourceGroupName $MSIResourceGroupName ` -SubscriptionId $ControlPlaneSubscriptionId ` -Location $Location ` -Verbose # Create Azure DevOps Project with Managed Identity New-SDAFADOProject ` -AdoOrganization $AzureDevOpsOrganizationUrl ` -AdoProject $AzureDevOpsProjectName ` -TenantId $TenantId ` -ControlPlaneCode $ControlPlaneCode ` -ControlPlaneSubscriptionId $ControlPlaneSubscriptionId ` -ControlPlaneName $ControlPlaneName ` -AuthenticationMethod 'Managed Identity' ` -AgentPoolName $AgentPoolName ` -ManagedIdentityObjectId $ManagedServiceIdentity.PrincipalId ` -CreateConnections ` -EnableWebApp ` -GitHubRepoName $repo ` -BranchName $branch -Verbose Write-Output "Azure DevOps Project '$AzureDevOpsProjectName' created successfully." Write-Output "Managed Identity Id: $($ManagedServiceIdentity.Id)" Write-Output "Agent Pool Name: $AgentPoolName"En Azure DevOps, valide lo siguiente:
- Se creó el proyecto.
- El repositorio se ha rellenado.
- Se crearon las canalizaciones.
Decida desde dónde se ejecuta Terraform y el código de Ansible:
- Ejecute código directamente desde GitHub.
- Importe y ejecute código desde repositorios en el proyecto de Azure DevOps.
Configuración de artefactos para una nueva zona de carga de trabajo
Ejecute este procedimiento después de que el proyecto del plano de control esté disponible.
- Abra PowerShell y copie el siguiente script.
- Actualice todos los valores de parámetro para que coincida con el entorno.
- Ejecute el script.
Use el siguiente script para implementar los artefactos necesarios para admitir una nueva zona de carga de trabajo. Este proceso crea el grupo de variables y la conexión de servicio en Azure DevOps y, opcionalmente, la entidad de servicio de implementación.
# Azure DevOps Configuration
$AzureDevOpsOrganizationUrl = "https://dev.azure.com/ORGANIZATIONNAME"
# Azure Infrastructure Configuration
$ControlPlaneCode = "MGMT"
$ControlPlaneRegionCode = "SECE"
$Location = "swedencentral"
$ControlPlaneName = "$ControlPlaneCode-$ControlPlaneRegionCode-DEP01"
$ManagedIdentityName = "$ControlPlaneName"
$MSIResourceGroupName = "SDAF-MSIs"
$AzureDevOpsProjectName = "SDAF-" + $ControlPlaneCode + "-" + $ControlPlaneRegionCode
$ControlPlaneSubscriptionId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$WorkloadSubscriptionId = "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
$TenantId = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
$WorkloadCode = "TEST"
$WorkloadRegionCode = "SECE"
$WorkloadZoneCode = $WorkloadCode + "-" + $WorkloadRegionCode + "-SAP01"
Remove-Module SDAFUtilities -ErrorAction SilentlyContinue
# Import required modules
#Repository information
$repo = "Azure/sap-automation"
$branch = "main"
Remove-Module SDAFUtilities -ErrorAction SilentlyContinue
# Import required modules
$url="https://raw.githubusercontent.com/$repo/refs/heads/$branch/deploy/scripts/pwsh/Output/SDAFUtilities/SDAFUtilities.psm1"
Write-Host "Downloading SDAFUtilities module from $url" -ForegroundColor Green
Invoke-WebRequest -Uri $url -OutFile "SDAFUtilities.psm1"
Unblock-File -Path ".\SDAFUtilities.psm1"
Import-Module ".\SDAFUtilities.psm1"
# Get Managed Identity
$ManagedServiceIdentity = Get-SDAFUserAssignedIdentity `
-ManagedIdentityName $ManagedIdentityName `
-ResourceGroupName $MSIResourceGroupName `
-SubscriptionId $ControlPlaneSubscriptionId `
-Verbose
Write-Output "Managed Identity Id: $($ManagedServiceIdentity.Id)"
New-SDAFADOWorkloadZone `
-AdoOrganization $AzureDevOpsOrganizationUrl `
-AdoProject $AzureDevOpsProjectName `
-TenantId $TenantId `
-ControlPlaneCode $ControlPlaneCode `
-WorkloadZoneCode $WorkloadZoneCode `
-WorkloadZoneSubscriptionId $WorkloadSubscriptionId `
-AuthenticationMethod 'Managed Identity' `
-ManagedIdentityObjectId $ManagedServiceIdentity.PrincipalId `
-ManagedIdentityId $ManagedServiceIdentity.IdentityId `
-ControlPlaneSubscriptionId $ControlPlaneSubscriptionId `
-CreateConnections `
-Verbose
En Azure DevOps, compruebe que se hayan creado el grupo de variables de la zona de carga de trabajo y la conexión de servicio.
Creación de una configuración de plano de control de ejemplo
Para generar una configuración inicial del plano de control, ejecute la canalización Crear configuración del implementador de ejemplo.
- En Azure DevOps, abra la canalización y seleccione Ejecutar.
- Seleccione la región de Azure adecuada.
- Establezca marcas de componente opcionales, como Azure Firewall, Azure Bastion y Configuration App Service.
- Compruebe que los archivos de ejemplo generados se agregaron al repositorio de configuración.
Configuración manual de Azure DevOps Services para SAP Deployment Automation Framework
Use esta ruta de acceso cuando quiera crear y configurar manualmente los recursos del proyecto en lugar de usar los scripts de automatización.
Creación de un nuevo proyecto
Abra Azure DevOps.
Seleccione Nuevo proyecto y escriba los detalles del proyecto.
El proyecto contiene Azure Repos y Azure Pipelines para las actividades de implementación.
Si no ve Nuevo proyecto, compruebe que tiene permiso para crear proyectos en la organización.
Registre la dirección URL del proyecto. Use esta dirección URL en Configuración manual del agente autohospedado de Azure DevOps Services.
Importación del repositorio
- Vaya a Repositorios y seleccione Importar un repositorio.
- Importe el repositorio sap-automation-bootstrap.
- Si se produce un error en la importación, continúe con Creación del repositorio para la importación manual e Importación manual del contenido del repositorio mediante un clon local.
Para obtener más información, consulte Importación de un repositorio.
Creación del repositorio para la importación manual
Realice este paso solo si la importación directa no está disponible.
- En Repositorios, en Configuración del proyecto, seleccione Crear.
- Seleccione el tipo de repositorio Git.
- Escriba un nombre de repositorio, como el repositorio de configuración de SAP.
Clonación del repositorio
En Repositorios>, seleccione Clonar.
Clone el repositorio en una carpeta local.
Para obtener más información, consulte Clonación de un repositorio.
Importar manualmente el contenido del repositorio mediante un clon local
Descargue sap-automation-samples como un
.ziparchivo.Extraiga el archivo y copie el contenido en la raíz del clon local.
Abra la carpeta local en Visual Studio Code y compruebe que el control de código fuente muestra los cambios pendientes.
Confirme el contenido importado, por ejemplo, con el mensaje Importar desde GitHub.
Seleccione Sincronizar cambios para volver a insertar los cambios en Azure Repos.
Elección del origen del código de Terraform y Ansible
Puede ejecutar el código de SAP Deployment Automation Framework directamente desde GitHub o puede importarlo localmente.
Ejecución del código desde un repositorio local
Si quiere ejecutar el código de SAP Deployment Automation Framework desde el proyecto local de Azure DevOps, debe crear un repositorio de código independiente y un repositorio de configuración en el proyecto de Azure DevOps:
-
Nombre del repositorio de configuración:
Same as the DevOps Project name. El origen es el repositorio sap-automation-bootstrap. -
Nombre del repositorio de código:
sap-automation. El origen es el repositorio de sap-automation. -
Nombre del repositorio de ejemplo y plantilla:
sap-samples. La fuente es el repositorio sap-automation-samples.
Ejecución del código directamente desde GitHub
Si desea ejecutar el código directamente desde GitHub, debe proporcionar credenciales para que Azure DevOps pueda extraer el contenido de GitHub.
Creación de la conexión de servicio de GitHub
Para extraer el código de GitHub, necesita una conexión de servicio de GitHub. Para más información, consulte Administración de conexiones de servicio.
En Azure DevOps, vaya a Configuración del proyecto>Canalizaciones>Conexiones de servicio.
Seleccione GitHub como tipo de conexión de servicio.
En Configuración de OAuth, seleccione Azure Pipelines.
Seleccione Autorizar e iniciar sesión en GitHub.
Escriba un nombre de conexión, por ejemplo, conexión de SDAF a GitHub.
Seleccione Conceder permiso de acceso a todas las canalizaciones.
Haga clic en Guardar.
Configuración de un registro de aplicaciones para la aplicación web (opcional)
El marco de automatización puede aprovisionar una aplicación web como parte del plano de control. Si desea usar la aplicación web, cree primero un registro de aplicación.
Abra una instancia de Azure Cloud Shell y ejecute los siguientes comandos para el entorno de shell:
Reemplace por MGMT el entorno, según sea necesario.
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
app_registration_client_secret=$(az ad app credential reset --id $TF_VAR_app_registration_app_id --append --query "password" -o tsv)
echo "Store app_registration_client_secret in a secure location such as Azure Key Vault or an Azure DevOps secret variable. Don't store it in plain text files or source control."
rm manifest.json
Almacene el identificador de registro de la aplicación y el secreto de cliente generado en una ubicación segura, como Azure Key Vault o variables secretas de Azure DevOps. No almacene credenciales en archivos de texto sin formato, capturas de pantalla o control de código fuente.
Creación de Azure Pipelines
Azure Pipelines se implementa como archivos YAML en el repositorio. Cree cada canalización a partir de la ruta de acceso YAML correspondiente.
- En Azure DevOps, vaya a Canalizaciones y seleccione Nueva canalización.
- Seleccione Azure Repos Git.
- Seleccione el repositorio raíz (el mismo nombre que el proyecto).
- Seleccione Archivo YAML de Azure Pipelines existente.
- Para cada canalización en la tabla siguiente, seleccione la ruta YAML, después guarde la canalización y rénómbrela al nombre para mostrar indicado.
| Tubería | YAML path | Nombre para mostrar |
|---|---|---|
| Implementación del plano de control | pipelines/01-deploy-control-plane.yml |
Implementación del plano de control |
| Implementación de la zona de carga de trabajo de SAP | pipelines/02-sap-workload-zone.yml |
Implementación de la zona de carga de trabajo de SAP |
| Implementación del sistema SAP (infraestructura) | pipelines/03-sap-system-deployment.yml |
Implementación del sistema SAP (infraestructura) |
| Adquisición de software de SAP | deploy/pipelines/04-sap-software-download.yml |
Adquisición de software de SAP |
| Configuración de SAP e instalación de software | pipelines/05-DB-and-SAP-installation.yml |
Configuración de SAP e instalación de software |
| Eliminación de implementación | pipelines/10-remover-terraform.yml |
Eliminación de implementación |
| Eliminación de la implementación mediante Azure Resource Manager | pipelines/11-remover-arm-fallback.yml |
Eliminación del despliegue mediante el procesador ARM |
| Eliminación del plano de control | pipelines/12-remove-control-plane.yml |
Eliminación del plano de control |
| Actualizador de repositorios | pipelines/20-update-ado-repository.yml |
Actualizador de repositorios |
La canalización del Actualizador de repositorio actualiza su repositorio de Azure DevOps cuando desea incorporar los cambios de sap-automation.
Nota:
Utilice la canalización Eliminación de la implementación mediante Azure Resource Manager solo como último recurso. Quitar solo los grupos de recursos puede dejar restos que complican la reimplementación.
Importación de la tarea de limpieza desde Visual Studio Marketplace
Las canalizaciones usan una tarea personalizada para realizar actividades de limpieza después de la implementación. Puede instalar la tarea personalizada desde Limpieza posterior a la compilación. Instaládlo en la organización de Azure DevOps antes de ejecutar los pipelines.
Preparativos para un agente autohospedado
Para crear un grupo de agentes, vaya a Configuración de la organización. En la sección Canalizaciones , seleccione Grupos de agentes>Agregar grupo. Seleccione Autohospedado como tipo de pool. Asigne al grupo un nombre que esté alineado con el entorno del plano de control. Por ejemplo, use
MGMT-WEEU-POOL. Asegúrese de que la opción Conceder permiso de acceso a todas las canalizaciones está seleccionada y seleccione Crear para crear el grupo.Inicie sesión con la cuenta de usuario que planea usar en su organización de Azure DevOps .
En la página principal, abra la configuración del usuario y seleccione Tokens de acceso personal.
Cree un token de acceso personal con esta configuración:
- Grupos de agentes: seleccione Leer y administrar.
- Compilación: seleccione Leer y ejecutar.
- Código: seleccione Lectura y escritura.
- Grupos de variables: seleccione Leer, crear y administrar.
Almacene el token en una ubicación segura. No almacene el valor del token en archivos de texto sin formato, capturas de pantalla, registros de terminal ni control de código fuente.
Configuración de grupos de variables
Las canalizaciones de implementación están configuradas para usar un conjunto de valores de parámetro predefinidos definidos mediante grupos de variables.
Variables comunes
Todas las canalizaciones de implementación usan variables comunes. Se almacenan en un grupo de variables denominado SDAF-General.
Cree un nuevo grupo de variables denominado SDAF-General mediante la página Biblioteca de la sección Canalizaciones . Agregue las siguientes variables:
| Variable | Importancia | Notas |
|---|---|---|
| Deployment_Configuration_Path | ÁREAS DE TRABAJO | Para probar la configuración de ejemplo, use samples/WORKSPACES en lugar de WORKSPACES. |
| Rama | main (principal) | |
| S-Username | <SAP Support user account name> |
|
| S-Password | <SAP Support user password> |
Cambie el tipo de variable a secret seleccionando el icono de bloqueo. |
tf_version |
1.6.0 | Versión de Terraform que se va a usar. Consulte Descarga de Terraform. |
Guarde las variables.
Como alternativa, puede usar la CLI de Azure DevOps para configurar los grupos.
s-user="<SAP Support user account name>"
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 tf_version=1.6.0 --output yaml
Después de crear el grupo, agregue S-Password como una variable secreta en Azure DevOps en lugar de pasar el valor en la línea de comandos.
Recuerde asignar permisos para todas las canalizaciones mediante permisos de canalización.
Variables específicas del entorno
Dado que cada entorno puede tener credenciales de implementación diferentes, debe crear un grupo de variables por entorno. Por ejemplo, use SDAF-MGMT, SDAF-DEVy SDAF-QA.
Cree un nuevo grupo de variables denominado SDAF-MGMT para el entorno del plano de control mediante la página Biblioteca de la sección Canalizaciones . Agregue las siguientes variables:
| Variable | Importancia | Notas |
|---|---|---|
| Agente |
Azure Pipelines o el nombre del grupo de agentes |
Use el grupo de agentes creado en Preparación para un agente autohospedado. |
| CP_ARM_CLIENT_ID | Service principal application ID |
|
| CP_ARM_OBJECT_ID | Service principal object ID |
|
| CP_ARM_CLIENT_SECRET | Service principal password |
Cambie el tipo de variable a secret seleccionando el icono de bloqueo. |
| CP_ARM_SUBSCRIPTION_ID | Target subscription ID |
|
| CP_ARM_TENANT_ID |
Tenant ID para la entidad de servicio |
|
| AZURE_CONNECTION_NAME | Nombre de conexión creado en Creación de una conexión de servicio | |
| sap_fqdn | Nombre de dominio completo de SAP, por ejemplo, sap.contoso.net |
Solo es necesario si no se usa DNS privado. |
| FENCING_SPN_ID |
Service principal application ID para el agente de barreras |
Necesario para implementaciones de alta disponibilidad que usan una entidad de servicio para el agente de barreras. |
| FENCING_SPN_PWD |
Service principal password para el agente de barreras |
Necesario para implementaciones de alta disponibilidad que usan una entidad de servicio para el agente de barreras. |
| FENCING_SPN_TENANT |
Service principal tenant ID para el agente de barreras |
Necesario para implementaciones de alta disponibilidad que usan una entidad de servicio para el agente de barreras. |
| PAT | <Personal Access Token> |
Utilice el token personal creado en Preparativos para un agente autohospedado y establezca el tipo de variable en secreto seleccionando el icono de bloqueo. |
| PISCINA | <Agent Pool name> |
Grupo de agentes que se va a usar para este entorno. |
| APP_REGISTRATION_APP_ID | App registration application ID |
Obligatorio si se implementa la aplicación web. |
| WEB_APP_CLIENT_SECRET | App registration password |
Obligatorio si se implementa la aplicación web. |
| SDAF_GENERAL_GROUP_ID | El ID del grupo SDAF-General | El identificador se puede recuperar del parámetro variableGroupId URL al acceder al grupo de variables mediante un explorador. Por ejemplo: variableGroupId=8. |
| WORKLOADZONE_PIPELINE_ID | Identificador de la SAP workload zone deployment canalización |
El ID se puede obtener del parámetro URL definitionId de la página de canalización en Azure DevOps. Por ejemplo: definitionId=31. |
| SYSTEM_PIPELINE_ID | Identificador de la SAP system deployment (infrastructure) canalización |
El ID se puede obtener del parámetro URL definitionId de la página de canalización en Azure DevOps. Por ejemplo: definitionId=32. |
Guarde las variables.
Recuerde asignar permisos para todas las canalizaciones mediante permisos de canalización.
Al usar la aplicación web, asegúrese de que el servicio de compilación tenga al menos permisos de Contribución.
Puede usar la funcionalidad de clonación para crear el siguiente grupo de variables de entorno. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID y SYSTEM_PIPELINE_ID solo son necesarios para el grupo de SDAF-MGMT.
Creación de una conexión de servicio
Para quitar los recursos de Azure, necesita una conexión de servicio de Azure Resource Manager. Para más información, consulte Administración de conexiones de servicio.
En Azure DevOps, vaya a Configuración del proyecto>Canalizaciones>Conexiones de servicio.
Seleccione Azure Resource Manager y, a continuación, seleccione Principal de servicio (manual).
Introduzca los valores de la suscripción de destino (normalmente, la suscripción del plano de control) y de la entidad de servicio.
Seleccione Comprobar para validar las credenciales.
Escriba un nombre de conexión, por ejemplo
Connection to MGMT subscription.Seleccione Conceder permiso de acceso a todas las canalizaciones.
Seleccione Comprobar y guardar.
Para obtener más información sobre cómo crear una entidad de servicio, consulte Creación de una entidad de servicio.
Concesión de permisos de repositorio
La mayoría de las canalizaciones agregan archivos a Azure Repos y, por tanto, requieren permisos de extracción. En Configuración del proyecto, en la sección Repositorios , seleccione la pestaña Seguridad del repositorio de código fuente y asigne permisos de contribución a Build Service.
Vaya a Configuración del proyecto>Repositorios.
Abra la pestaña Seguridad del repositorio de código fuente.
Conceda permiso de contribución a
Build Service.
Implementación del plano de control
- Si las canalizaciones recién creadas no están visibles, seleccione Reciente y, a continuación, vuelva a Todo.
- Abra la canalizaciónImplementación del plano de control.
- Escriba los nombres de configuración para el implementador y la biblioteca de SAP.
- Seleccione Ejecutar.
- Si desea implementar la aplicación web de configuración, seleccione Implementar la aplicación web de configuración.
Configuración manual del agente autohospedado de Azure DevOps Services
La configuración manual solo es necesaria si el agente de Azure DevOps Services no está configurado automáticamente. Compruebe que el grupo de agentes está vacío antes de continuar.
Para conectarse al implementador:
Inicie sesión en Azure Portal.
Vaya al grupo de recursos que contiene la máquina virtual (VM) del implementador.
Conéctese a la máquina virtual mediante Azure Bastion.
El nombre de usuario predeterminado es azureadm.
Seleccione Ssh Private Key (Clave privada SSH) en Azure Key Vault.
Seleccione la suscripción que contiene el plano de control.
Seleccione el almacén de claves del implementador.
En la lista de secretos, seleccione el secreto que termina con -sshkey.
Conecte a la máquina virtual.
Para configurar el implementador, ejecute el siguiente script:
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
Para configurar el agente de Azure DevOps, reinicie el implementador, vuelva a conectarse y ejecute el siguiente script:
cd ~/Azure_SAP_Automated_Deployment/
$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh
Acepte la licencia y, cuando se le solicite la dirección URL del servidor, escriba la dirección URL del proyecto de Azure DevOps que registró en Creación de un nuevo proyecto. Para la autenticación, seleccione PAT y escriba el valor del token de acceso personal (PAT) que creó en Preparación para un agente autohospedado.
Cuando se le solicite, escriba el nombre del grupo de agentes que creó en Preparación para un agente autohospedado (por ejemplo, MGMT-WEEU-POOL). Acepte el nombre del agente predeterminado y el nombre de carpeta de trabajo predeterminado. El agente ahora está configurado e inicia.
Implementación de la aplicación web del plano de control
Al seleccionar el deploy the web app infrastructure parámetro al ejecutar la canalización de implementación del plano de control, se aprovisiona la infraestructura necesaria para hospedar la aplicación web. La canalización Implementar aplicación web publica el software de la aplicación en esa infraestructura.
- Ejecute la canalización de implementación del plano de control con
deploy the web app infrastructurehabilitado. - Espere a que la implementación finalice.
- Abra la pestaña Extensiones y complete la configuración posterior a la implementación.
- Actualice los valores de registro
reply-urlde aplicaciones.
Como resultado de ejecutar la canalización del plano de control, parte de la dirección URL de la aplicación web necesaria se almacena en una variable denominada WEBAPP_URL_BASE en el grupo de variables específico del entorno. En cualquier momento, puede actualizar las direcciones URL de la aplicación web de aplicación registrada mediante el comando siguiente.
Este comando actualiza la dirección URL de la página principal del registro de la aplicación y redirige identificadores uniformes de recursos (URI) para la aplicación web del plano de control implementado.
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
Conceda acceso de Lector en el ámbito de la suscripción a la identidad administrada asignada por el sistema del servicio de aplicaciones:
- Abra el recurso de App Service.
- Seleccione Identidad.
- En Asignado por el sistema, seleccione asignaciones de roles de Azure>Agregar una asignación de roles.
- Seleccione el ámbito Suscripción y el rol Lector, luego seleccione Guardar.
Ahora debería poder visitar la aplicación web y usarla para implementar zonas de carga de trabajo de SAP y infraestructura del sistema SAP.