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 volúmenes de Persistent Disk o Hyperdisk
- Una cuenta de servicio de administración de identidades y accesos (IAM) que especificas para que la usen las VM
- Las API de Google Cloud que requiere la implementación de SAP
- Etiquetas de red para cada instancia de VM (opcional)
- De manera opcional, una dirección IP externa para cada instancia de VM
- 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
y/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 lo hubiera.
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, 202404101403
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/202404101403/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/202404101403/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 de Terraform. Para ello, agrega bloques module
al archivo de configuración de cada sistema adicional que necesites implementar.
Para las implementaciones de SAP, copia la definición de bloque module
que proporciona Google Cloud y pégala en el orden adecuado en tu archivo de configuración.
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
Aplicas 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.