Mengotomatiskan deployment SAP di Google Cloud dengan Terraform

Anda dapat mengotomatiskan deployment infrastruktur Google Cloud menggunakan Terraform, yakni alat open source yang dapat Anda gunakan untuk mengotomatiskan pembuatan dan pengelolaan resource Google Cloud. Untuk mengetahui informasi tentang Terraform, lihat Terraform dengan Google Cloud.

Untuk solusi SAP tertentu dan database pendukung, seperti SAP HANA, Google Cloud menyediakan file konfigurasi Terraform yang telah ditetapkan dan dapat digunakan untuk men-deploy infrastruktur Google Cloud yang memenuhi persyaratan dan praktik terbaik dukungan SAP.

Solusi SAP yang didukung

Google Cloud menyediakan file konfigurasi Terraform untuk solusi SAP berikut:

Yang di-deploy oleh file konfigurasi

Semua file konfigurasi Terraform yang disediakan Google Cloud untuk deployment SAP mengonfigurasi atau men-deploy elemen berikut:

  • Satu atau beberapa virtual machine (VM) Compute Engine
  • OS image yang Anda tentukan
  • Satu atau beberapa persistent disk atau Hyperdisk
  • Secara opsional, akun layanan Identity and Access Management (IAM) yang Anda tentukan untuk digunakan oleh VM
  • Google Cloud API yang diperlukan oleh deployment SAP
  • Tag jaringan untuk setiap instance VM (opsional)
  • Alamat IP publik untuk setiap instance VM (opsional)
  • Versi terbaru Agen Google Cloud untuk SAP

Untuk SAP HANA, file konfigurasi Terraform juga men-deploy:

  • Volume penyimpanan untuk /hana/data, /hana/log, /hana/shared, /usr/sap, dan /hanabackup
  • Secara opsional, sistem SAP HANA itu sendiri
  • Untuk sistem penyebaran skala SAP HANA dengan failover otomatis host, host master, hingga 15 host pekerja, dan hingga 3 host standby
  • Cluster ketersediaan tinggi Linux
  • Secara opsional, untuk sistem peningkatan skala SAP HANA, alamat IP statis untuk instance utama dan sekunder
  • Secara opsional, untuk sistem penyebaran skala SAP HANA, alamat IP statis untuk node master, pekerja, dan standby

Untuk SAP NetWeaver, file konfigurasi Terraform juga men-deploy:

  • Volume penyimpanan untuk /sapmnt, /usr/sap, dan volume swap
  • Secara opsional, cluster ketersediaan tinggi Linux di SLES

Untuk cluster ketersediaan tinggi (HA), file konfigurasi Terraform juga men-deploy fungsi dan fitur tambahan seperti load balancer internal, grup instance, dan aturan penerusan. Untuk informasi selengkapnya, lihat panduan deployment untuk skenario HA.

Konfigurasi Terraform untuk setiap deployment SAP

Setiap konfigurasi Terraform yang telah ditetapkan untuk SAP berisi file konfigurasi deklaratif DEPLOYMENT_TYPE.tf.

Untuk informasi tentang nama file konfigurasi atau cara mendownloadnya, lihat panduan deployment untuk skenario Anda.

Menyelesaikan file konfigurasi Terraform

File konfigurasi Terraform yang disediakan untuk deployment SAP sesuai dengan standar yang ditentukan oleh Terraform.

File konfigurasi yang disediakan untuk SAP menyertakan definisi modul utama diikuti dengan komentar yang mendeklarasikan argumen. Contoh berikut adalah kutipan dari file sap_hana.tf untuk men-deploy sistem penyebaran skala SAP HANA tanpa node standby:

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

Untuk menggunakan argumen opsional, hapus karakter komentar, #, lalu tentukan nilai untuk argumen tersebut. Sebagian besar argumen opsional memiliki nilai default. Jika Anda tidak menentukan argumen opsional, konfigurasi Terraform akan menggunakan nilai default argumen tersebut, jika ada.

Untuk informasi selengkapnya tentang file konfigurasi, lihat Dokumentasi Bahasa Terraform.

Pembuatan versi modul

File konfigurasi Terraform DEPLOYMENT_TYPE.tf yang Anda download dari Google Cloud untuk deployment SAP berisi dua instance argumen source: satu instance aktif dan satu lagi yang disertakan sebagai komentar. Anda dapat mengontrol versi modul yang digunakan konfigurasi Anda dengan menghapus karakter komentar utama, #, dari argumen source yang diperlukan dan menambahkannya ke argumen yang tidak Anda butuhkan.

Secara default, ketika Anda mendownload file konfigurasi Terraform baru dari Google Cloud untuk deployment SAP, argumen source yang aktif akan menentukan latest sebagai versi modul, yang berarti bahwa jika Terraform dimuat ulang file di direktori kerja saat Anda memasukkan perintah terraform init, maka konfigurasi Anda akan menggunakan versi terbaru modul Terraform yang disediakan Google Cloud untuk deployment SAP.

Instance kedua dari argumen source, yang secara default dinonaktifkan oleh karakter # di awal, menyertakan stempel waktu yang mengidentifikasi versi modul yang disediakan oleh Google Cloud. Misalnya, dalam contoh berikut, 202309280828 adalah stempel waktu yang mengidentifikasi versi modul 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...
  #...

Jika Anda ingin semua deployment menggunakan versi modul yang sama, hapus karakter # utama dari argumen source yang menyertakan versi di DEPLOYMENT_TYPE.tf dan tambahkan ke argumen source yang menentukan latest sebagai versi, seperti ditunjukkan dalam contoh berikut:

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

Jika stempel waktu ditentukan, semua deployment akan menggunakan versi modul Terraform yang sesuai dengan stempel waktu yang ditentukan.

Men-deploy beberapa sistem dengan satu file konfigurasi

Anda dapat men-deploy beberapa sistem menggunakan satu file konfigurasi dengan menambahkan blok module ke file konfigurasi untuk setiap sistem tambahan yang perlu Anda deploy.

Untuk deployment SAP, salin blok module dan tempelkan di bawah untuk membuat sistem SAP baru.

Di setiap blok modul, pastikan untuk menentukan nilai unik untuk argumen khusus instance, seperti module atau instance_name.

Menerapkan konfigurasi

Anda dapat menerapkan konfigurasi Terraform menggunakan perintah terraform apply.

Jika Anda ingin melihat pratinjau hasil konfigurasi sebelum benar-benar men-deploy resource Google Cloud, buat rencana eksekusi Terraform menggunakan perintah terraform plan.

Untuk mengetahui prosedur penerapan yang mendetail, baca panduan deployment untuk skenario Anda.

Setelah Terraform selesai menerapkan konfigurasi Anda, Terraform di Cloud Shell akan menampilkan COMPLETED untuk setiap resource yang dibuatnya dan meneruskan kontrol ke skrip shell. Skrip shell dipanggil sebagai skrip startup pada VM yang di-deploy.

Skrip shell mengonfigurasi resource yang di-deploy lebih lanjut dan mencatat progresnya di Cloud Logging. Deployment SAP tidak akan selesai sampai skrip shell selesai diproses.

Skrip pasca-deployment

Anda dapat menggunakan skrip pasca-deployment untuk melakukan tindakan tambahan, seperti memicu penginstalan aplikasi SAP NetWeaver, agen pemantauan, dan sebagainya.

Skrip pasca-deployment adalah cara yang direkomendasikan untuk menyesuaikan konfigurasi Anda karena skrip tersebut hanya mendapatkan kontrol setelah infrastruktur Google Cloud dikonfigurasi sesuai dengan persyaratan dukungan SAP.

Agar dapat menampilkan pesan status untuk skrip pasca-deployment, Anda perlu membuat kode skrip untuk menulis pesan ke log. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Cloud Logging.

Status skrip pasca-deployment tidak disertakan dalam pesan yang ditulis Terraform ke Cloud Shell atau sesi shell Google Cloud CLI lokal.

Mendapatkan dukungan untuk konfigurasi Terraform

Jika Anda memerlukan bantuan untuk menyelesaikan masalah konfigurasi Terraform yang disediakan Google Cloud untuk SAP, kumpulkan informasi diagnostik yang diperlukan dan hubungi Layanan Pelanggan Cloud.

Untuk mengetahui informasi lebih lanjut terkait cara mendapatkan dukungan untuk masalah Terraform, baca artikel Mendapatkan dukungan untuk masalah Terraform.