Automazione di deployment SAP su Google Cloud con Terraform

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Puoi automatizzare il deployment dell'infrastruttura Google Cloud utilizzando Terraform, uno strumento open source che ti consente di automatizzare la creazione e la gestione delle risorse di Google Cloud. Per informazioni su Terraform, consulta Terraform with Google Cloud.

Per soluzioni SAP selezionate e database di supporto, come SAP HANA, Google Cloud fornisce file di configurazione Terraform predefiniti che puoi utilizzare per eseguire il deployment dell'infrastruttura Google Cloud che soddisfa i requisiti e le best practice di supporto di SAP.

Soluzioni SAP supportate

Google Cloud fornisce i file di configurazione Terraform per le seguenti soluzioni SAP:

Elementi di cui viene eseguito il deployment dei file di configurazione

Tutti i file di configurazione Terraform forniti da Google Cloud per i deployment SAP configurano o eseguono il deployment dei seguenti elementi:

  • Una o più macchine virtuali (VM) Compute Engine
  • Un'immagine sistema operativo specificata
  • Uno o più dischi permanenti
  • Facoltativamente, un account di servizio Identity and Access Management (IAM) specificato da utilizzare per le VM
  • Le API Google Cloud richieste dal deployment SAP
  • Facoltativamente, tag di rete per ogni istanza VM
  • Facoltativamente, un indirizzo IP pubblico per ogni istanza VM
  • Agente di monitoraggio Google Cloud per SAP NetWeaver

Per SAP HANA, anche i file di configurazione Terraform eseguono il deployment di:

  • Volumi di archiviazione per /hana/shared, /usr/sap, /hana/data, /hana/log e /hanabackup
  • Facoltativamente, il sistema SAP HANA stesso
  • Per i sistemi che prevedono lo scale out di SAP HANA con failover automatico dell'host, un host master, fino a 15 host worker e fino a 3 host in standby
  • Per i sistemi di scale up SAP HANA, un cluster Linux ad alta disponibilità

Per SAP NetWeaver, anche i file di configurazione Terraform eseguono il deployment di:

  • Volumi di archiviazione per /sapmnt, /usr/sap e un volume di scambio
  • Facoltativamente, un cluster ad alta disponibilità Linux su SLES

Per i cluster ad alta disponibilità (HA), i file di configurazione di Terraform eseguono anche il deployment di funzioni e funzionalità aggiuntive come il bilanciatore del carico interno e le regole di forwarding e di gruppo di istanze. Per ulteriori informazioni, consulta la guida al deployment del tuo scenario ad alta disponibilità.

Configurazioni Terraform per ogni deployment SAP

Ogni configurazione Terraform predefinita per SAP contiene un file di configurazione dichiarativo DEPLOYMENT_TYPE.tf.

Per informazioni sui nomi dei file di configurazione o su come scaricarli, consulta la guida al deployment del tuo scenario.

Completamento del file di configurazione Terraform

I file di configurazione Terraform forniti per i deployment SAP sono conformi agli standard definiti da Terraform.

I file di configurazione forniti per SAP includono la definizione del modulo principale seguita dai commenti che dichiarano argomenti. Il seguente esempio è un estratto del file sap_hana.tf per il deployment di un sistema di scale up SAP HANA:

#...
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
  # ...
}

Per utilizzare gli argomenti facoltativi, rimuovi il carattere del commento # e specifica un valore per l'argomento.

Per ulteriori informazioni sui file di configurazione, consulta la documentazione per le lingue di Terraform.

Controllo delle versioni dei moduli

I file di configurazione Terraform di DEPLOYMENT_TYPE.tf che scarichi da Google Cloud per i deployment SAP contengono due istanze dell'argomento source: una attiva e una inclusa come commento. Per controllare quale versione del modulo viene utilizzata dalla tua configurazione, rimuovi il carattere di commento principale, #, dall'argomento source di cui hai bisogno e aggiungilo a quello che non vuoi.

Per impostazione predefinita, quando scarichi un nuovo file di configurazione Terraform da Google Cloud per i deployment SAP, l'argomento source attivo specifica latest come versione del modulo, il che significa che se Terraform aggiorna i file nella directory di lavoro quando inserisci il comando terraform init, la configurazione utilizza la versione più recente disponibile del modulo Terraform fornita da Google Cloud per i deployment SAP.

La seconda istanza dell'argomento source, che per impostazione predefinita è disattivata da un carattere # iniziale, include il timestamp che identifica la versione del modulo fornita da Google Cloud. Nell'esempio seguente, 202201240926 è il timestamp che identifica la versione del modulo 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/202201240926/terraform/sap_hana/sap_hana_module.zip"
  #...
  # arguments...
  #...

Se vuoi che tutti i deployment utilizzino la stessa versione del modulo, nel tuo DEPLOYMENT_TYPE.tf rimuovi il carattere # iniziale dall'argomento source che include il timestamp della versione e aggiungilo all'argomento source che specifica latest come versione, come mostrato nell'esempio seguente:

#...
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/202201240926/terraform/sap_hana/sap_hana_module.zip"
  #...
  # arguments...
  #...

Quando viene specificato un timestamp, tutti i deployment utilizzano la versione del modulo Terraform corrispondente al timestamp specificato.

Gestione delle password

Per automatizzare l'installazione di SAP HANA sulle VM di Compute Engine di cui è stato eseguito il deployment, devi specificare le password per l'utente SIDadm e l'utente del database. Puoi specificare queste password nel file di configurazione Terraform nei seguenti modi:

  • Per fornire le password agli script di installazione in modo sicuro, puoi creare i secret utilizzando Secret Manager, che è un servizio a pagamento di Google Cloud, e specificare i nomi dei secret come valori per gli argomenti sap_hana_sidadm_password_secret e sap_hana_system_password_secret.

    Per informazioni sui prezzi di Secret Manager, consulta i prezzi di Secret Manager.

  • In alternativa, puoi specificare le password in testo normale per gli argomenti sap_hana_sidadm_password e sap_hana_system_password.

Deployment di più sistemi con un solo file di configurazione

Puoi eseguire il deployment di più sistemi con un singolo file di configurazione aggiungendo module blocchi al file di configurazione per ogni sistema aggiuntivo di cui devi eseguire il deployment.

Per i deployment SAP, copia il blocco module e incollalo di seguito per creare il nuovo sistema SAP.

In ogni blocco di modulo, assicurati di specificare valori univoci per gli argomenti specifici dell'istanza, come module o instance_name.

Applicazione delle configurazioni

Applichi una configurazione Terraform utilizzando il comando terraform apply.

Se vuoi visualizzare l'anteprima dei risultati della configurazione prima di eseguire effettivamente il deployment di qualsiasi risorsa Google Cloud, crea il piano di esecuzione Terraform usando il comando terraform plan.

Per procedure di applicazione dettagliate, consulta la guida al deployment del tuo scenario.

Quando Terraform completa l'applicazione della configurazione, in Cloud Shell Terraform visualizza COMPLETED per ogni risorsa creata e passa il controllo allo script shell. Lo script shell viene richiamato come script di avvio sulle VM di cui è stato eseguito il deployment.

Lo script shell configura ulteriormente le risorse di cui è stato eseguito il deployment e ne registra l'avanzamento in Cloud Logging. Il deployment di SAP non viene completato fino a quando gli script della shell non completano l'elaborazione.

Script post-deployment

Puoi utilizzare uno script post-deployment per eseguire azioni aggiuntive, come l'attivazione dell'installazione della tua applicazione SAP NetWeaver, gli agenti di monitoraggio e così via.

Gli script post-deployment sono il modo consigliato per personalizzare la tua configurazione perché ricevono controllo solo dopo che l'infrastruttura di Google Cloud è configurata in base ai requisiti di supporto di SAP.

Per visualizzare i messaggi di stato per gli script post-deployment, devi codificare gli script per scriverli nei log. Per ulteriori informazioni, consulta la documentazione di Cloud Logging.

Lo stato degli script post-deployment non è incluso nei messaggi scritti da Terraform sulla Cloud Shell o su una sessione locale di Google Cloud CLI.

Assistenza per le configurazioni Terraform

Se hai bisogno di aiuto per risolvere un problema con le configurazioni di Terraform fornite da Google Cloud per SAP, raccogli le informazioni di diagnostica necessarie e contatta l'assistenza clienti di Cloud.

Per ulteriori informazioni su come ricevere assistenza per i problemi di Terraform, vedi Richiedere assistenza per i problemi di Terraform.