Escala empresarial para el marco de automatización de implementaciones de SAP: laboratorio práctico

En este tutorial se muestra cómo realizar el escalado empresarial para implementaciones mediante el marco de automatización de implementaciones de SAP en Azure. En este ejemplo se Azure Cloud Shell para implementar la infraestructura del plano de control. La máquina virtual (VM) del implementador crea la infraestructura restante y las configuraciones de SAP HANA.

En este laboratorio, realizará las tareas siguientes:

  • Implementar el plano de control (infraestructura de Deployer y Library)
  • Implementar la zona de cargas de trabajo (Landscape, System)
  • Descargar y cargar BOM
  • Configurar los valores estándar y específicos de SAP del sistema operativo
  • Instalar la base de datos de HANA
  • Instalar el servidor SCS
  • Cargar la base de datos de HANA
  • Instalar el servidor de aplicaciones principal

La implementación de SAP en Azure con el marco de automatización consta de tres pasos principales.

  1. Preparar la región. En este paso se implementan componentes para admitir el marco de automatización de SAP en una región de Azure especificada. Algunas partes de este paso son:

    1. Creación del entorno de implementación
    2. Creación de almacenamiento compartido para archivos de estado de Terraform
    3. Creación de almacenamiento compartido para medios de instalación de SAP
  2. Preparar la zona de cargas de trabajo. En este paso se implementan los componentes de la zona de cargas de trabajo, como la red virtual y los almacenes de claves.

  3. Implementar el sistema. Este paso incluye la infraestructura del sistema SAP.

Hay varios flujos de trabajo en el proceso de automatización de una implementación. Sin embargo, para facilitar la implementación, este tutorial se centra en un flujo de trabajo. Puede implementar este flujo de trabajo, el entorno independiente de SAP S4 HANA, mediante Bash. En el tutorial se describe la jerarquía general y las distintas fases de la implementación.

Introducción al entorno

El marco de automatización de implementaciones de SAP en Azure tiene dos componentes principales:

  • La infraestructura de implementación (plano de control)
  • La infraestructura de SAP (carga de trabajo de SAP)

En el diagrama siguiente se muestra la dependencia entre el plano de control y el plano de aplicación.

Diseño de infraestructura del tutorial de DevOps

El marco usa Terraform para la implementación de la infraestructura, y Ansible para la configuración del sistema operativo y la aplicación. En el diagrama siguiente se muestra la separación lógica del plano de control y la zona de cargas de trabajo.

Diagrama que muestra el entorno del marco de automatización de implementaciones de SAP.

Zona de administración

La zona de administración contiene la infraestructura del plano de control desde la que se implementan otros entornos. Una vez que se ha implementado la zona de administración, pocas veces, si es que alguna, tendrá que volver a implementarla.

Diagrama del plano de control.

Deployer es el motor de ejecución del marco de automatización de SAP. Esta máquina virtual (VM) preconfigurada se usa para ejecutar comandos de Terraform y Ansible.

Library de SAP proporciona el almacenamiento persistente para los archivos de estado de Terraform y los medios de instalación de SAP descargados para el plano de control.

Configure el implementador y la biblioteca en un archivo de variables .tfvars de Terraform. Consulte Configuración del plano de control.

Zona de cargas de trabajo

Normalmente, una aplicación de SAP tiene varios niveles de implementación. Por ejemplo, puede tener los niveles de desarrollo, control de calidad y producción. El marco de automatización de implementaciones de SAP hace referencia a estos niveles como zonas de cargas de trabajo.

Zona de cargas de trabajo.

La zona de cargas de trabajo de SAP contiene los componentes de red y compartidos de las VM de SAP. Estos componentes incluyen tablas de rutas, grupos de seguridad de red y redes virtuales (VNet). Landscape ofrece la oportunidad de dividir las implementaciones en distintos entornos. Consulte la configuración de la zona de cargas de trabajo.

La implementación del sistema consta de las máquinas virtuales que ejecutarán la aplicación de SAP, incluidos los niveles web, de aplicación y de base de datos. Consulte la configuración del sistema de SAP.

Laboratorio práctico

Requisitos previos

El repositorio del marco de automatización de implementaciones de SAP está disponible en GitHub.

Necesita un cliente SSH para conectarse a Deployer. Use cualquier cliente SSH con el que se sienta cómodo.

Revisión de la cuota de suscripción de Azure

Asegúrese de que la suscripción a Microsoft Azure tenga una oferta básica suficiente para las SKU de la familia DdSV4 y EdsV4 en la región elegida. Unos 50 núcleos disponibles para cada familia de VM deberían bastar.

Cuenta de S-User para la descarga del software de SAP

Se requiere una cuenta de usuario de SAP válida (cuenta de SAP-User o S-User) con privilegios de descarga de software para descargar el software de SAP.

Configuración de Cloud Shell

  1. Vaya a Azure Cloud Shell.

  2. Inicie sesión en su cuenta de Azure.

    az login
    

    Nota

    Autentique el inicio de sesión. No cierre la ventana hasta que se le pida.

    Valide la suscripción activa y registre el identificador de la suscripción:

    az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
    

    or

    az account list --output=table | grep True
    
  3. Si es necesario, cambie la suscripción activa.

    az account set --subscription <Subscription ID>
    

    Valide que la suscripción activa ha cambiado:

    az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
    
  4. De manera opcional, quite todos los artefactos de implementación. Úsela cuando desee eliminar todos los restos de artefactos de implementación anteriores.

    
    cd ~
    
    rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.d
    
  5. Cree la carpeta de implementación y clone el repositorio.

    mkdir -p ~/Azure_SAP_Automated_Deployment
    
    cd ~/Azure_SAP_Automated_Deployment
    
    git clone https://github.com/Azure/sap-automation.git
    
  6. También puede validar las versiones de Terraform y de la CLI de Azure disponibles en la instancia del Cloud Shell.

    ./sap-automation/deploy/scripts/helpers/check_workstation.sh
    

    Para ejecutar el marco de automatización, actualice a las siguientes versiones.

Creación de una entidad de servicio

El marco de automatización de implementaciones de SAP usa entidades de servicio para la implementación. Cree una entidad de servicio para la implementación del plano de control como se muestra a continuación. Asegúrese de usar una cuenta con permisos para crear entidades de servicio.

Nota

Al elegir el nombre de la entidad de servicio, asegúrese de que el nombre sea único dentro del inquilino de Azure.

  1. Conceda permisos de colaborador y administrador de acceso de usuario a la entidad de servicio.

    export         subscriptionId="<subscriptionId>"
    export control_plane_env_code="MGMT"
    
    az ad sp create-for-rbac --role="Contributor"           \
      --scopes="/subscriptions/${subscriptionId}"           \
      --name="${control_plane_env_code}-Deployment-Account"
    

    Revise el resultado. Por ejemplo:

    {
        "appId": "<AppId>",
        "displayName": "<environment>-Deployment-Account ",
        "name": "<AppId>",
        "password": "<AppSecret>",
        "tenant": "<TenantId>"
    }
    
  2. Copie los detalles de la salida. Asegúrese de guardar los valores de los campos siguientes: appId, password y Tenant.

    La salida se asigna a los parámetros siguientes. Estos parámetros se usan en pasos posteriores, con comandos de automatización.

    Nombre del parámetro de entrada Nombre de salida
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. Opcionalmente, asigne el rol Administrador de acceso de usuario a la entidad de servicio.

    export appId="<appId>"
    
    az role assignment create --assignee ${appId} \
      --role "User Access Administrator" \
      --scope /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
    

Nota

Si no asigna el rol Administrador de acceso de usuario a la entidad de servicio, no podrá asignar permisos mediante la automatización.

Visualización de los archivos de configuración

Importante

Trate siempre el repositorio de GitHub como de solo lectura. Trabaje en una copia de la carpeta WORKSPACES para realizar cambios en la configuración. Este método mantiene la configuración estable si el repositorio cambia.

  1. Copie las configuraciones de ejemplo en un directorio local de las áreas de trabajo:

    cd ~/Azure_SAP_Automated_Deployment
    
    cp -Rp ./sap-automation/training-materials/WORKSPACES .
    
  2. Abra VS Code desde Cloud Shell.

    code .
    

    Nota

    No funciona en el explorador Safari.

    Expanda el directorio WORKSPACES. Hay cinco subcarpetas: DEPLOYER, LANDSCAPE, LIBRARY, SYSTEM y BOMS. Expanda cada una de estas carpetas para buscar archivos de configuración de implementación regional.

    Busque el código de cuatro caracteres adecuado que corresponda a la región de Azure que está usando.

    Nombre de región Código de región
    Este de Australia AUEA
    Centro de Canadá CACE
    Centro de EE. UU. CEUS
    Este de EE. UU. EAUS
    Norte de Europa NOEU
    Norte de Sudáfrica SANO
    Sudeste de Asia SOEA
    Sur de Reino Unido 2 UKSO
    Oeste de EE. UU. 2 WUS2

    Busque los archivos de variables de Terraform en la subcarpeta adecuada. Por ejemplo, el archivo de variables de Terraform DEPLOYER podría tener el siguiente aspecto:

    # The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP.
    environment="MGMT"
    # The location/region value is a mandatory field, it is used to control where the resources are deployed
    location="westeurope"
    
    # management_network_address_space is the address space for management virtual network
    management_network_address_space="10.10.20.0/25"
    # management_subnet_address_prefix is the address prefix for the management subnet
    management_subnet_address_prefix="10.10.20.64/28"
    # management_firewall_subnet_address_prefix is the address prefix for the firewall subnet
    management_firewall_subnet_address_prefix="10.10.20.0/26"
    
    deployer_enable_public_ip=true
    firewall_deployment=true
    

    Anote las ubicaciones de los archivos de variables de Terraform para futuras modificaciones durante la implementación.

Implementación del plano de control

Use el script prepare_region para implementar Deployer y Library. Estas piezas de implementación componen el plano de control de un área de automatización elegida.

  • La implementación pasa por ciclos de implementación de la infraestructura, actualización del estado y carga de los archivos de estado de Terraform en la cuenta de almacenamiento de Library. Todos estos pasos están empaquetados en un único script de implementación. El script necesita la ubicación del archivo de configuración para Deployer y Library, y algunos otros parámetros, como se muestra a continuación.

Por ejemplo, elija Norte de Europa como ubicación de implementación, con el nombre de cuatro caracteres NOEU descrito anteriormente. El archivo de configuración de Deployer de ejemplo MGMT-NOEU-DEP00-INFRASTRUCTURE.tfvars se encuentra en carpeta ~/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/MGMT-NOEU-DEP00-INFRASTRUCTURE.

El archivo de configuración de SAP Library de ejemplo MGMT-NOEU-SAP_LIBRARY.tfvars se encuentra en carpeta ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/MGMT-NOEU-SAP_LIBRARY.

  1. Cree el implementador y la biblioteca de SAP y agregue los detalles de la entidad de servicio al almacén de claves de la implementación.

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
    
    export subscriptionId="<subscriptionId>"
    export         spn_id="<appId>"
    export     spn_secret="<password>"
    export      tenant_id="<tenantId>"
    export       env_code="MGMT"
    export    region_code="<region_code>"
    
    export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
    export ARM_SUBSCRIPTION_ID="${subscriptionId}"
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/prepare_region.sh                                                                                       \
        --deployer_parameter_file DEPLOYER/${env_code}-${region_code}-DEP00-INFRASTRUCTURE/${env_code}-${region_code}-DEP00-INFRASTRUCTURE.tfvars  \
        --library_parameter_file LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars                      \
        --subscription "${subscriptionId}"                                                                                                         \
        --spn_id "${spn_id}"                                                                                                                       \
        --spn_secret "${spn_secret}"                                                                                                               \
        --tenant_id "${tenant_id}"                                                                                                                 \
        --auto-approve
    

    Nota

    Si tiene problemas de autenticación, ejecute az logout para cerrar la sesión y borrar token-cache y, a continuación, ejecute az login para volver a autenticarse.

    Espere a que el marco de automatización ejecute las operaciones de Terraform plan y apply.

    La implementación de Deployer puede tardar unos 15 a 20 minutos.

    Importante

    Debe anotar algunos de los valores para los pasos siguientes. Busque este bloque de texto en la salida.

    #########################################################################################
    #                                                                                       #
    #  Please save these values:                                                            #
    #     - Key Vault: MGMTNOEUDEP00user39B                                                 #
    #     - Deployer IP: x.x.x.x                                                            #
    #     - Storage Account: mgmtnoeutfstate53e                                             #
    #                                                                                       #
    #########################################################################################
    
  2. Vaya a Azure Portal.

    Seleccione Grupos de recursos. Busque nuevos grupos de recursos para la infraestructura del implementador y la biblioteca. Por ejemplo, MGMT-[region]-DEP00-INFRASTRUCTURE y MGMT-[region]-SAP_LIBRARY.

    A continuación se muestra el contenido de los grupos de recursos Deployer y SAP Library.

    Recursos de Deployer

    Recursos de biblioteca

    El archivo de estado de Terraform está ahora en la cuenta de almacenamiento cuyo nombre contiene "tfstate". La cuenta de almacenamiento tiene un contenedor denominado "tfstate" con los archivos de estado de Deployer y Library. A continuación, se puede ver qué incluye el contenedor "tfstate" después de una implementación correcta del plano de control.

    Archivos tfstate del plano de control

Problemas comunes y soluciones

  • Si recibe el siguiente error para la creación del módulo de Deployer, asegúrese de encontrarse en el directorio WORKSPACES al ejecutar el script:

    Incorrect parameter file.
    The file must contain the environment attribute!!
    
  • El siguiente error es transitorio. Vuelva a ejecutar el mismo comando, prepare_region.sh.

    Error: file provisioner error
    ..
    timeout - last error: dial tcp
    
  • Si tiene problemas de autenticación directamente después de ejecutar el script prepare_region.sh, ejecute:

    az logout
    
    az login
    

Conexión con la VM del implementador

Una vez implementado el plano de control, el estado de Terraform se almacena mediante un back-end remoto, azurerm. Todos los secretos para conectarse a la VM del implementador están disponibles en un almacén de claves en el grupo de recursos del implementador.

Asegúrese de que puede conectarse a la VM del implementador:

  1. Inicie sesión en Azure Portal.

  2. Busque o seleccione Almacenes de claves.

  3. En la página Almacén de claves, busque el almacén de claves del implementador. El nombre empieza por MGMT[REGION]DEP00user. Si es necesario, filtre por Grupo de recursos o Ubicación.

  4. Seleccione Secretos en la sección Configuración en el panel izquierdo.

  5. Busque y seleccione el secreto que contiene sshkey. Es posible que tenga este aspecto: MGMT-[REGION]-DEP00-sshkey

  6. En la página del secreto, seleccione la versión actual. Luego, copie el Valor secreto.

  7. Abra un editor de texto sin formato. Copie el valor secreto.

  8. Guarde el archivo donde se mantienen las claves SSH. Por ejemplo, C:\\Users\\<your-username>\\.ssh.

  9. Guarde el archivo. Si se le pide Guardar como tipo, seleccione Todos los archivos si SSH no es una opción. Por ejemplo, use deployer.ssh.

  10. Conéctese a la máquina virtual del implementador a través de cualquier cliente SSH, como VSCode. Use la dirección IP pública que anotó anteriormente y la clave SSH que descargó. Para obtener instrucciones sobre cómo conectarse al implementador mediante VSCode, vea cómo conectarse al implementador mediante VSCode. Si usa PuTTY, convierta primero el archivo de clave SSH mediante PuTTYGen.

Nota

El nombre de usuario predeterminado es azureadm.

  • Una vez conectado a la máquina virtual del implementador, puede descargar el software de SAP mediante la lista de materiales (L. MAT).

Conexión a la máquina virtual del implementador cuando no se usa una dirección IP pública

En el caso de las implementaciones sin conectividad de direcciones IP públicas, la conectividad a través de Internet no se permite. En estos casos, puede usar Azure Bastion, un JumpBox o realizar el paso siguiente desde un equipo que tenga conectividad con la red virtual de Azure.

En el ejemplo siguiente se usa Azure Bastion.

Conéctese al implementador siguiendo estos pasos:

  1. Inicie sesión en Azure Portal.

  2. Vaya al grupo de recursos que contiene la máquina virtual del implementador.

  3. Conexión a una máquina virtual con Azure Bastion.

  4. El nombre de usuario predeterminado es azureadm.

  5. Elija Clave privada SSH de Azure Key Vault.

  6. Seleccione la suscripción que contiene el plano de control.

  7. Seleccione el almacén de claves del implementador.

  8. En la lista de secretos, elija el secreto que termina en -sshkey.

  9. Conexión a una máquina virtual.

Ejecute el siguiente script para configurar el implementador.

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

El script instalará Terraform y Ansible, y configurará el implementador.

Importante

El resto de las tareas deben ejecutarse en el implementador.

Obtención de software de SAP mediante la lista de materiales (L. MAT)

El marco de automatización le proporciona herramientas para descargar software de SAP mediante la lista de materiales (L. MAT) de SAP. El software se descargará en la biblioteca de SAP, que actúa como archivo de todos los medios necesarios para implementar SAP.

La lista de materiales (BOM) de SAP emula a SAP Maintenance Planner. Hay identificadores de producto pertinentes y un conjunto de direcciones URL de descarga.

Un extracto de ejemplo de un archivo BOM tiene el siguiente aspecto:


---
name:    'S41909SPS03_v0010'
target:  'S/4 HANA 1909 SPS 03'
version: 7

product_ids:
  dbl:       NW_ABAP_DB:S4HANA1909.CORE.HDB.ABAP
  scs:       NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAP
  scs_ha:    NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAPHA
  pas:       NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAP
  pas_ha:    NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAPHA
  app:       NW_DI:S4HANA1909.CORE.HDB.PD
  app_ha:    NW_DI:S4HANA1909.CORE.HDB.ABAPHA
  web:       NW_Webdispatcher:NW750.IND.PD
  ers:       NW_ERS:S4HANA1909.CORE.HDB.ABAP
  ers_ha:    NW_ERS:S4HANA1909.CORE.HDB.ABAPHA

materials:
  dependencies:
    - name:     HANA_2_00_055_v0005ms

  media:
    # SAPCAR 7.22
    - name:         SAPCAR
      archive:      SAPCAR_1010-70006178.EXE
      checksum:     dff45f8df953ef09dc560ea2689e53d46a14788d5d184834bb56544d342d7b
      filename:     SAPCAR
      permissions:  '0755'
      url:          https://softwaredownloads.sap.com/file/0020000002208852020

    # Kernel
    - name:         "Kernel Part I ; OS: Linux on x86_64 64bit ; DB: Database independent"

Para esta configuración de ejemplo, el grupo de recursos es MGMT-NOEU-DEP00-INFRASTRUCTURE. El nombre del almacén de claves del implementador incluiría MGMTNOEUDEP00user en el nombre. Esta información se usa para configurar los secretos del almacén de claves del implementador.

  1. Conéctese a la VM del implementador para los pasos siguientes. Ahora allí hay una copia del repositorio.

  2. Agregue un secreto con el nombre de usuario de la cuenta de usuario de SAP. Reemplace <vaultID> por el nombre del almacén de claves del implementador. Además, reemplace <sap-username> por el nombre de usuario de SAP.

    export key_vault=<vaultID>
    sap_username=<sap-username>
    
    az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
    
  3. Agregue un secreto con la contraseña de la cuenta de usuario de SAP. Reemplace <vaultID> por el nombre del almacén de claves del implementador, y <sap-password> por la contraseña de SAP.

    Nota

    Es importante usar comillas simples al establecer sap_user_password. De lo contrario, el uso de caracteres especiales en la contraseña puede provocar resultados impredecibles.

    sap_user_password='<sap-password>'
    
    az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value "${sap_user_password}";
    
  4. Compruebe el número de versión de la lista de materiales S/4 1909 SPS03 para la versión activa.

    Registre los resultados.

    
    ls -d ${DEPLOYMENT_REPO_PATH}/deploy/ansible/BOM-catalog/S41909SPS03* | xargs basename
    
    
  5. Configure el archivo de parámetros de SAP para el proceso de descarga. Luego, descargue el software de SAP mediante guiones de procedimientos de Ansible. Ejecute los siguientes comandos:

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
    cp -Rp ../sap-automation/training-materials/WORKSPACES/BOMS .
    cd BOMS
    
    vi sap-parameters.yaml
    
  6. Actualice bom_base_name con el nombre de la lista de materiales que se ha identificado anteriormente.

    El archivo debe tener una apariencia similar a la configuración de ejemplo siguiente:

    
    bom_base_name:                 S41909SPS03_v0010ms
    
    
  7. Reemplace <Deployer KeyVault Name> por el nombre del almacén de claves de Azure del grupo de recursos del implementador

    El archivo debe tener una apariencia similar a la configuración de ejemplo siguiente:

    
    bom_base_name:                 S41909SPS03_v0010ms
    kv_name:                       <Deployer KeyVault Name>
    
    
  8. Asegúrese de que check_storage_account está presente y establézcalo en false. Este valor controla si se va a comprobar el archivo en la biblioteca de SAP antes de descargarlo de SAP.

    El archivo debe tener una apariencia similar a la configuración de ejemplo siguiente:

    
    bom_base_name:                 S41909SPS03_v0010
    kv_name:                       <Deployer KeyVault Name>
    check_storage_account:         false
    
    
  9. Ejecute los guiones de procedimientos de Ansible. Una forma de ejecutar los cuadernos de estrategias es usar el menú de descargador. Ejecute el script download_menu.

    ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh
    
  10. Seleccione el guion de procedimientos que desea ejecutar.

    1) BoM Downloader
    3) Quit
    Please select playbook:
    

    Seleccione el guion 1) BOM Downloader para descargar el software de SAP descrito en el archivo BOM en la cuenta de almacenamiento. Compruebe que el contenedor sapbits tiene todos los medios para la instalación.

Recopilación de información de la zona de cargas de trabajo

  1. Recopile la siguiente información en un editor de texto:

    Nota

    La información siguiente se recopiló al final de la fase de Implementación del plano de control.

    1. Nombre de la cuenta de almacenamiento de los archivos de estado de Terraform en el grupo de recursos Library.

      • Siguiendo el ejemplo anterior, el grupo de recursos sería MGMT-NOEU-SAP_LIBRARY.
      • El nombre de la cuenta de almacenamiento contendrá mgmtnoeutfstate.
    2. El nombre del almacén de claves del grupo de recursos Deployer.

      • Siguiendo el ejemplo anterior, el grupo de recursos sería MGMT-NOEU-DEP00-INFRASTRUCTURE.
      • El nombre del almacén de claves contendrá MGMTNOEUDEP00user.
    3. La dirección IP pública de la VM del implementador. Vaya al grupo de recursos Deployer, abra la VM del implementador y copie la dirección IP pública.

  2. Además, es necesario recopilar la información siguiente.

    1. El nombre del archivo de estado del implementador se puede encontrar en el grupo de recursos Library
      • Grupo de recursos Library -> cuenta de almacenamiento de estado -> contenedores -> tfstate -> Copie el nombre del archivo de estado de Deployer.
      • Siguiendo el ejemplo anterior, el nombre del blob sería: MGMT-NOEU-DEP00-INFRASTRUCTURE.terraform.tfstate.
  3. Si es necesario, registre el SPN

    Importante

    La primera vez que se crea una instancia de un entorno, debe registrarse un SPN. En este tutorial, el plano de control está en el entorno MGMT y la zona de cargas de trabajo está en DEV, por lo que debe registrarse un SPN para DEV en este momento.

    export subscriptionId="<subscriptionId>"
    export         spn_id="<appID>"
    export     spn_secret="<password>"
    export      tenant_id="<tenant>"
    export      key_vault="<vaultID>"
    export       env_code="DEV"
    export    region_code="<region_code>"
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/set_secrets.sh     \
        --environment "${env_code}"                           \
        --region "${region_code}"                             \
        --vault "${key_vault}"                                \
        --subscription "${subscriptionId}"                    \
        --spn_id "${spn_id}"                                  \
        --spn_secret "${spn_secret}"                          \
        --tenant_id "${tenant_id}"
    

Preparación de la implementación de la zona de cargas de trabajo

  1. Conéctese a la VM del implementador para los pasos siguientes. Ahora allí hay una copia del repositorio.

  2. Vaya a la carpeta sap-automation y, opcionalmente, actualice el repositorio.

    cd ~/Azure_SAP_Automated_Deployment/sap-automation/
    
    git pull
    
  3. Vaya a la carpeta WORKSPACES/LANDSCAPE y copie los archivos de configuración de ejemplo que va a usar desde el repositorio.

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE
    
    cp -Rp ../../sap-automation/training-materials/WORKSPACES/LANDSCAPE/DEV-[REGION]-SAP01-INFRASTRUCTURE .
    

Implementación de la zona de cargas de trabajo

Use el script install_workloadzone para implementar la zona de cargas de trabajo de SAP.

  1. En la VM del implementador, vaya a la carpeta Azure_SAP_Automated_Deployment.

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEV-XXXX-SAP01-INFRASTRUCTURE
    

    En la región de ejemplo "northeurope", la carpeta tendrá el siguiente aspecto:

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEV-NOEU-SAP01-INFRASTRUCTURE
    
  2. Opcionalmente, abra el archivo de configuración de la zona de cargas de trabajo y, si es necesario, cambie el nombre lógico de red para que coincida con el nombre de red.

  3. Inicie la implementación de la zona de cargas de trabajo:

    Nota

    Aquí se necesitan los detalles recopilados anteriormente. Estos detalles son los siguientes:

    • Nombre del archivo tfstate del implementador (que se encuentra en el contenedor tfstate)
    • Nombre de la cuenta de almacenamiento de tfstate
    • Nombre del almacén de claves del implementador
    
    export tfstate_storage_account="<storageaccountName>"
    export       deployer_env_code="MGMT"
    export            sap_env_code="DEV"
    export             region_code="<region_code>"
    export               key_vault="<vaultID>"
    
    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/${sap_env_code}-${region_code}-SAP01-INFRASTRUCTURE
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/install_workloadzone.sh                                          \
        --parameterfile ./${sap_env_code}-${region_code}-SAP01-INFRASTRUCTURE.tfvars                        \
        --deployer_environment "${deployer_env_code}"                                                       \
        --deployer_tfstate_key "${deployer_env_code}-${region_code}-DEP00-INFRASTRUCTURE.terraform.tfstate" \
        --keyvault "${key_vault}"                                                                           \
        --storageaccountname "${tfstate_storage_account}"                                                   \
        --auto-approve
    

    La implementación de la zona de cargas de trabajo debe iniciarse automáticamente.

    Espere a que finalice la implementación. El nuevo grupo de recursos aparece en Azure Portal.

Preparación para implementar la infraestructura del sistema SAP

  1. Conéctese a la VM del implementador para los pasos siguientes. Ahora allí hay una copia del repositorio.

  2. Vaya a la carpeta WORKSPACES/SYSTEM y copie los archivos de configuración de ejemplo que va a usar desde el repositorio.

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM
    
    cp -Rp ../../sap-automation/training-materials/WORKSPACES/SYSTEM/DEV-[REGION]-SAP01-X00 .
    

Implementación de la infraestructura del sistema SAP

Una vez completada la zona de cargas de trabajo, puede implementar los recursos de infraestructura del sistema SAP. El sistema SAP crea las VM y los componentes auxiliares para la aplicación de SAP. Use el script installer.sh para implementar el sistema SAP.

El sistema SAP implementa:

  • El nivel de base de datos, que implementa las VM de base de datos y sus discos, y una instancia de Azure Standard Load Balancer. Puede ejecutar bases de datos de HANA o bases de datos de AnyDB en este nivel.
  • El nivel SCS, que implementa un número de VM definido por el cliente y una instancia de Azure Standard Load Balancer.
  • El nivel de aplicación, que implementa las VM y sus discos.
  • El nivel de distribuidor web.
  1. Implemente el sistema SAP.

    
    export sap_env_code="DEV"
    export  region_code="<region_code>"
    
    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/${sap_env_code}-${region_code}-SAP01-X00
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/installer.sh                  \
      --parameterfile "${sap_env_code}-${region_code}-SAP01-X00.tfvars"  \
      --type sap_system                                                  \
      --auto-approve
    

    El comando de implementación del ejemplo northeurope tendrá el siguiente aspecto:

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEV-NOEU-SAP01-X00
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/installer.sh  \
      --parameterfile DEV-NOEU-SAP01-X00.tfvars          \
      --type sap_system                                  \
      --auto-approve
    

    Compruebe que el grupo de recursos del sistema ahora esté en Azure Portal.

Instalación de la aplicación de SAP

La instalación de la aplicación de SAP se produce a través de guiones de procedimientos de Ansible.

Vaya a la carpeta de implementación del sistema:

cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEV-NOEU-SAP01-X00/

Asegúrese de que tiene los siguientes archivos en la carpeta actual: sap-parameters.yaml y SID_host.yaml.

En el caso de un sistema SAP S/4HANA independiente, hay ocho guiones de procedimientos para ejecutarse en secuencia. Una forma de ejecutar los cuadernos de estrategias es usar el menú de configuración.

Ejecute el script configuration_menu.

~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh

Elija los cuadernos de estrategias que se van a ejecutar.

Guion de procedimientos: OS Config

Este cuaderno de estrategias realiza la configuración genérica del sistema operativo en todas las máquinas, lo que incluye la configuración de repositorios de software, paquetes, servicios, etc.

Guion de procedimientos: SAP-Specific OS config

Este cuaderno de estrategias realiza la configuración del sistema operativo de SAP en todas las máquinas. Los pasos son la creación de grupos de volúmenes, sistemas de archivos, configuración de repositorios de software, paquetes y servicios.

Guion de procedimientos: BOM Processing

Este cuaderno de estrategias descarga el software SAP en la máquina virtual SCS.

Guion de procedimientos: HANA DB Install

Este guion instalará las instancias de base de datos de HANA.

Guion de procedimientos: SCS Install

Este guion instalará SAP Central Services. En el caso de las configuraciones de alta disponibilidad, el cuaderno de estrategias también instalará la instancia ERS de SAP y configurará Pacemaker.

Guion de procedimientos: DB Load

Este guion invocará la tarea de carga de bases de datos desde el servidor de aplicaciones principal.

Guion de procedimientos: PAS Install

Este guion instalará el servidor de aplicaciones principal.

Guion de procedimientos: APP Install

Este cuaderno de estrategias instalará los servidores de aplicaciones.

Ahora tiene implementado y configurado un sistema HANA independiente, si necesita configurar una base de datos de SAP HANA de alta disponibilidad, ejecute el guion HANA HA.

Guion de procedimientos: HANA HA

Este guion configurará la replicación del sistema HANA (HSR) y Pacemaker para la base de datos de HANA.

Limpieza de la instalación

Nota

Es importante limpiar la instalación de SAP de este tutorial una vez que haya terminado. De lo contrario, seguirá incurriendo en costos relacionados con los recursos.

Para quitar toda la infraestructura de SAP que ha implementado, debe:

  • Quitar los recursos de infraestructura del sistema SAP
  • Quitar todas las zonas de cargas de trabajo (Landscape)
  • Quitar el plano de control

Ejecute la eliminación de los recursos de la infraestructura de SAP y las zonas de cargas de trabajo desde la VM del implementador. Ejecute la eliminación del plano de control desde Cloud Shell.

Antes de empezar, inicie sesión en su cuenta de Azure. A continuación, compruebe que está en la suscripción correcta.

Eliminación de la infraestructura de SAP

Vaya a la subcarpeta DEV-NOEU-SAP01-X00 dentro de la carpeta SYSTEM. Después, ejecute este comando:

export sap_env_code="DEV"
export  region_code="NOEU"

cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/${sap_env_code}-${region_code}-SAP01-X00

${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh                   \
  --parameterfile "${sap_env_code}-${region_code}-SAP01-X00.tfvars" \
  --type sap_system

Eliminación de la zona de cargas de trabajo de SAP

Vaya a la subcarpeta DEV-XXXX-SAP01-INFRASTRUCTURE dentro de la carpeta LANDSCAPE. Luego, ejecute el comando siguiente.


export sap_env_code="DEV"
export  region_code="NOEU"

cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/${sap_env_code}-${region_code}-SAP01-INFRASTRUCTURE

${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh                                \
      --parameterfile ${sap_env_code}-${region_code}-SAP01-INFRASTRUCTURE.tfvars \
      --type sap_landscape

Eliminación del plano de control

Inicie sesión en Cloud Shell.

Vaya a la carpeta WORKSPACES.

cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/

Exporte las dos variables de entorno siguientes.

export DEPLOYMENT_REPO_PATH="~/Azure_SAP_Automated_Deployment/sap-automation"
export ARM_SUBSCRIPTION_ID="<subscriptionId>"

Ejecute el siguiente comando.

export region_code="NOEU"

${DEPLOYMENT_REPO_PATH}/deploy/scripts/remove_region.sh                                                                          \
    --deployer_parameter_file DEPLOYER/MGMT-${region_code}-DEP00-INFRASTRUCTURE/MGMT-${region_code}-DEP00-INFRASTRUCTURE.tfvars  \
    --library_parameter_file LIBRARY/MGMT-${region_code}-SAP_LIBRARY/MGMT-${region_code}-SAP_LIBRARY.tfvars

Compruebe que se hayan limpiado todos los recursos.

Pasos siguientes