Automatiza las implementaciones de SAP en Google Cloud con Terraform

Puedes automatizar la implementación de la infraestructura de Google Cloud con Terraform, una herramienta de código abierto que te permite automatizar la creación y la administración de recursos de Google Cloud. Para obtener información sobre Terraform, consulta Terraform con Google Cloud.

Para las soluciones de SAP seleccionadas y las bases de datos compatibles, como SAP HANA, Google Cloud proporciona archivos de configuración predefinidos de Terraform que puedes usar a fin de implementar la infraestructura de Google Cloud que cumple con los requisitos de compatibilidad y las prácticas recomendadas de SAP.

Soluciones de SAP compatibles

Google Cloud proporciona archivos de configuración de Terraform para las siguientes soluciones de SAP:

Qué implementan los archivos de configuración

Todos los archivos de configuración de Terraform que proporciona Google Cloud para las implementaciones de SAP configuran o implementan los siguientes elementos:

  • Una o más máquinas virtuales (VM) de Compute Engine
  • Una imagen de SO que especifiques
  • Uno o más discos persistentes o Hyperdisks
  • Opcionalmente, una cuenta de servicio de Identity and Access Management (IAM) que especificas para que la usen las VMs
  • Las API de Google Cloud que requiere la implementación de SAP
  • Etiquetas de red para cada instancia de VM (opcional)
  • Una dirección IP pública para cada instancia de VM (opcional)
  • La última versión del agente de Google Cloud para SAP.

Para SAP HANA, los archivos de configuración de Terraform también implementan lo siguiente:

  • Volúmenes de almacenamiento para /hana/data, /hana/log, /hana/shared, /usr/sap y /hanabackup.
  • El sistema SAP HANA (opcional)
  • Un host principal, hasta 15 hosts de trabajador y hasta 3 hosts de reserva para sistemas de escalamiento horizontal de SAP HANA con conmutación por error automática de host
  • Un clúster de alta disponibilidad de Linux
  • De manera opcional, para los sistemas de escalamiento vertical de SAP HANA, direcciones IP estáticas para las instancias principales y secundarias
  • De forma opcional, para los sistemas de escalamiento horizontal de SAP HANA, direcciones IP estáticas para los nodos principales, trabajadores y en espera

En SAP NetWeaver, los archivos de configuración de Terraform también implementan lo siguiente:

  • Volúmenes de almacenamiento para /sapmnt/usr/sap, además de un volumen de intercambio
  • Un clúster de alta disponibilidad de Linux en SLES (opcional)

Para los clústeres con alta disponibilidad (HA), los archivos de configuración de Terraform también implementan funciones y atributos adicionales, como el balanceador de cargas interno, un grupo de instancias y reglas de reenvío. Si deseas obtener más información, consulta la guía de implementación para tu situación de alta disponibilidad.

Configuraciones de Terraform para cada implementación de SAP

Cada configuración predefinida de Terraform para SAP contiene un archivo de configuración declarativo DEPLOYMENT_TYPE.tf.

Para obtener información sobre los nombres de los archivos de configuración o cómo descargarlos, consulta la guía de implementación de tu situación.

Completa el archivo de configuración de Terraform

Los archivos de configuración de Terraform que se proporcionan para las implementaciones de SAP cumplen con los estándares definidos por Terraform.

En los archivos de configuración proporcionados para SAP, se incluye la definición del módulo principal seguida de comentarios que declaran argumentos. El siguiente ejemplo es un extracto del archivo sap_hana.tf para implementar un sistema de escalamiento horizontal de SAP HANA sin nodos en espera:

#...
module "sap_hana" {
  source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
  #
  # By default, this source file uses the latest release of the terraform module
  # for SAP on Google Cloud. To fix your deployments to a specific release
  # of the module, comment out the source property above and uncomment the source property below.
  #
  # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana/sap_hana_module.zip"
  # ...
  project_id = "example-project-123456"
  zone = "us-central1-f"
  machine_type = "n2-highmem-32"
  subnetwork = "example-subnet-us-central1"
  linux_image = "sles-15-sp2-sap"
  linux_image_project = "suse-sap-cloud"
  # ...
  instance_name = "hana-scaleout"
  # ...
  sap_hana_deployment_bucket = "mybucketname"
  sap_hana_sid = "AB2"
  sap_hana_instance_number = 12
  sap_hana_sidadm_password = "TempPa55word"
  sap_hana_system_password = "TempPa55word"
  sap_hana_scaleout_nodes = 3
  sap_hana_sidadm_uid = 11
  vm_static_ip = "10.0.0.1"
  worker_static_ips = ["10.0.0.2", "10.0.0.3", "10.0.0.4"]
  enable_fast_restart = true
  # ...
}

Si quieres usar los argumentos opcionales, quita el carácter de comentario (#) y especifica un valor para el argumento. La mayoría de los argumentos opcionales tienen un valor predeterminado. Cuando no especificas un argumento opcional, la configuración de Terraform usa el valor predeterminado de ese argumento, si corresponde.

Para obtener más información sobre los archivos de configuración, consulta la Documentación del lenguaje de Terraform.

Control de versiones del módulo

Los archivos de configuración de Terraform DEPLOYMENT_TYPE.tf que descargas de implementaciones de Google Cloud para SAP contienen dos instancias del argumento source: una activa y otra incluida como comentario. Puedes controlar qué versión del módulo usa tu configuración si quitas el carácter de comentario inicial, #, del argumento source que necesitas y lo agregas al que no.

De forma predeterminada, cuando descargas un archivo nuevo de configuración de Terraform desde Google Cloud para implementaciones de SAP, el argumento activo source especifica latest como la versión del módulo, lo que significa que si Terraform actualiza los archivos del directorio de trabajo, cuando ingresas el comando terraform init, la configuración usa la última versión disponible del módulo de Terraform que proporciona Google Cloud para las implementaciones de SAP.

La segunda instancia del argumento source, que de forma predeterminada se desactiva mediante un carácter # inicial, incluye la marca de tiempo que identifica la versión del módulo que proporciona Google Cloud. Por ejemplo, en la siguiente muestra, 202309280828 es la marca de tiempo que identifica la versión del módulo de Terraform.

#...
module "sap_hana" {
  source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
  #...
  # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/202309280828/terraform/sap_hana/sap_hana_module.zip"
  #...
  # arguments...
  #...

Si necesitas que todas tus implementaciones usen la misma versión del módulo, en tu DEPLOYMENT_TYPE.tf, quita el carácter # inicial del argumento source que incluye la versión de marca de tiempo y agrégala al argumento source que especifica latest como la versión, tal como se muestra en el siguiente ejemplo:

#...
module "sap_hana" {
  # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
  #...
  source = "https://storage.googleapis.com/cloudsapdeploy/terraform/202309280828/terraform/sap_hana/sap_hana_module.zip"
  #...
  # arguments...
  #...

Cuando se especifica una marca de tiempo, todas las implementaciones usan la versión del módulo de Terraform que corresponde a la marca de tiempo especificada.

Implementa varios recursos con un archivo de configuración

Puedes implementar varios sistemas con un solo archivo de configuración si agregas bloques module al archivo de configuración de cada sistema adicional que necesitas implementar.

En el caso de las implementaciones de SAP, copia el bloque module y pégalo a continuación para crear el sistema SAP nuevo.

En cada bloque de módulo, asegúrate de especificar valores únicos para cualquier argumento específico de la instancia, como module o instance_name.

Aplica configuraciones

Aplica una configuración de Terraform con el comando terraform apply.

Si deseas obtener una vista previa de los resultados de la configuración antes de implementar un recurso de Google Cloud, crea el plan de ejecución de Terraform con el comando terraform plan.

Para ver los procedimientos detallados de la aplicación, consulta la guía de implementación de tu situación.

Cuando Terraform termina de aplicar la configuración, en Cloud Shell, Terraform muestra COMPLETED para cada uno de los recursos que crea y pasa el control a la secuencia de comandos de shell. La secuencia de comandos de shell se invoca como secuencia de comandos de inicio en las VM implementadas.

La secuencia de comandos de shell configura aún más los recursos implementados y registra su progreso en Cloud Logging. Una implementación de SAP se completa solo cuando las secuencias de comandos de shell completan su procesamiento.

Secuencias de comandos posteriores a la implementación

Puedes usar una secuencia de comandos posterior a la implementación para realizar acciones adicionales, como activar la instalación de la aplicación SAP NetWeaver, supervisar agentes, etcétera.

Las secuencias de comandos posteriores a la implementación son la forma recomendada de personalizar tu configuración porque solo obtienen el control después de que se configuró la infraestructura de Google Cloud según los requisitos de compatibilidad de SAP.

Si quieres que se muestren los mensajes de estado de las secuencias de comandos posteriores a la implementación, debes codificar estas secuencias de comandos para que escriban los mensajes en los registros. Para obtener más información, consulta la documentación de Cloud Logging.

El estado de las secuencias de comandos posteriores a la implementación no se incluye en los mensajes que Terraform escribe en Cloud Shell o en una sesión local de shell de Google Cloud CLI.

Obtén asistencia para las opciones de configuración de Terraform

Si necesitas ayuda para resolver un problema con las opciones de configuración de Terraform que Google Cloud proporciona a SAP, recopila la información de diagnóstico requerida y comunícate con el servicio de Atención al cliente de Cloud.

Si deseas obtener más información sobre cómo obtener asistencia para solucionar problemas de Terraform, consulta Obtén asistencia para los problemas de Terraform.