您可以使用 Cloud Deployment Manager 自動部署 Google Cloud 基礎架構,這項服務可自動建立及管理 Google Cloud 資源。
針對特定 SAP 解決方案和支援資料庫 (例如 SAP HANA),Google Cloud 提供預先定義的 Cloud Deployment Manager 設定範本,可用來部署符合 SAP 支援需求和最佳做法的 Google Cloud基礎架構。
支援的 SAP 解決方案
Google Cloud 為下列 SAP 解決方案提供 Cloud Deployment Manager 設定:
- SAP NetWeaver
- SAP HANA
- SAP ASE
- SAP MaxDB
- IBM Db2
- 在 Linux 上,您可以從下列位置下載範本:
使用 Linux 版 Db2 範本的步驟未記錄在文件中,但與 ASE 和 MaxDB Linux 範本的步驟非常相似。https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/template.yaml
- 在 Linux 的 Linux HA 叢集中
- 在 Windows 上,您可以從下列位置下載範本:
雖然我們沒有記錄使用 Windows 版 Db2 範本的步驟,但這些步驟與 ASE 和 MaxDB Windows 範本的步驟非常相似。https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2-win/template.yaml
- 在 Linux 上,您可以從下列位置下載範本:
範本部署的內容
Google Cloud 提供的所有 Deployment Manager 範本,可設定或部署下列元素:
- 一或多個 Compute Engine 虛擬機器 (VM)
- 您指定的 OS 映像檔
- 一或多個永久磁碟
- 您指定供 VM 使用的身分與存取權管理 (IAM) 服務帳戶 (選用)
- SAP 部署作業所需的 Google Cloud API
- 選用:每個 VM 執行個體的網路標記
- 每個 VM 執行個體的公開 IP 位址 (選用)
- 最新版的 Google Cloud代理程式 for SAP
針對 SAP HANA,Deployment Manager 範本也會部署:
/hana/shared
和/hanabackup
的儲存空間磁碟區- 視情況而定,SAP HANA 系統本身
- 針對具有主機自動容錯移轉功能的 SAP HANA 向外擴充系統,主機、最多 15 個工作站主機和最多 3 個待命主機
- 針對 SAP HANA 擴充系統,Linux 高可用性叢集
針對 SAP NetWeaver,Deployment Manager 範本也會部署:
/sapmnt
、/usr/sap
和 Swap 磁碟區的儲存空間磁碟區
每個 SAP 部署作業的 Deployment Manager 檔案
每個 SAP 的預先定義 Deployment Manager 設定都包含下列檔案組合:
- YAML 設定檔,
template.yaml
- Python 範本檔案
deployment-type.py
,例如sap_hana.py
、sap_hana_scaleout.py,
或sap_nw.py
。 - Python 結構定義檔案
deployment-type.py.schema
,例如sap_hana.py.schema
、sap_hana_scaleout.py.schema,
或sap_nw.py.schema
。 - 至少一個 Shell 指令碼、
startup.sh
或startup.ps1
您可以在 template.yaml
設定檔中指定 Google Cloud 資源的屬性。
完成 template.yaml
設定檔
為 SAP 部署作業提供的 template.yaml
設定檔,符合 Deployment Manager 定義的標準。
為 SAP 提供的設定檔包含主要資源定義,後面是註解部分,其中包含較少使用到的進階屬性。以下範例摘錄自 SAP HANA 的 template.yaml
檔案:
resources: - name: sap_hana type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py # # By default, this configuration file uses the latest release of the deployment # scripts for SAP on Google Cloud. To fix your deployments to a specific release # of the scripts, comment out the type property above and uncomment the type property below. # # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py # properties: instanceName: [VM_NAME] instanceType: [MACHINE_TYPE] zone: [ZONE] subnetwork: [SUBNETWORK] linuxImage: family/[IMAGE_FAMILY] linuxImageProject: [IMAGE_PROJECT] sap_hana_deployment_bucket: [MEDIA_BUCKET] sap_hana_sid: [SID] sap_hana_instance_number: [INSTANCE_NUMBER] sap_hana_sidadm_password: [PASSWORD] sap_hana_system_password: [PASSWORD] sap_hana_scaleout_nodes: [NUMBER_OF_WORKER_NODES] # # --- Advanced Options --- # The following advanced options are not usually needed. To use an advanced option, remove # the comment indicator, #, before the parameter name and specify an appropriate value. # # networkTag: [TAG] # Adds network tags to your instance. This is useful if you do routing or define # firewall rules by tags. By default, no tags are added to your VM. Multiple tags # can be assigned by separating them with commas # ...
如要使用進階屬性,請移除註解字元 #
,並指定屬性值。
如要進一步瞭解設定檔,請參閱「Deployment Manager 基礎知識」。
範本版本管理
您可以控制 SAP 部署作業使用的 Deployment Manager 範本版本,方法是在 YAML 設定檔的 type
屬性中指定版本時間戳記。
根據預設,當您下載新的 template.yaml
設定檔時,type
屬性會將 latest
指定為版本,這表示部署作業一律會使用 Deployment Manager 範本的最新可用版本。
在 type
屬性後方的備註中,有另一個 type
屬性規格,其中包含您下載 template.yaml
檔案時,最新可用版本的時間戳記。例如:
resources: - name: sap_hana type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py # # By default, this configuration file uses the latest release of the deployment # scripts for SAP on Google Cloud. To fix your deployments to a specific release # of the scripts, comment out the type property above and uncomment the type property below. # # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py # properties: ...
如果您需要所有部署都使用相同的範本版本,請將包含 latest
的 type
屬性規格,替換為包含時間戳記的 type
屬性規格。例如:
resources: - name: sap_hana type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py properties: ...
指定時間戳記後,所有部署作業都會使用 Deployment Manager 範本的版本,該版本與指定的時間戳記相對應。
如要查看 Deployment Manager 在 Google Cloud 控制台中為 SAP 部署作業使用的範本版本,請在「Deployments」頁面中點選部署作業名稱,然後點選「Deployment properties」下方的「Expanded config VIEW」。版本的時間戳記會顯示在 metadata
部分的 startup-script
後方,如以下範例所示:
metadata: items: - key: startup-script value: curl -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/startup.sh | bash -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates
使用單一設定檔部署多個資源
您可以透過單一設定檔部署多個資源,方法是將更多資源定義新增至該檔案。
針對 SAP 部署作業,請複製預先定義資源的 -name
、type
和 properties:
部分,然後貼到下方,建立新的資源定義。
在每個資源定義中,請務必為下列項目指定不重複的值:
- 名稱
- instanceName
執行部署作業
您可以執行下列指令來啟動部署作業:
gcloud deployment-manager deployments create [DEPLOYMENT-NAME] --config [TEMPLATE-NAME].yaml
如果您想在實際部署任何 Google Cloud 資源前預覽部署結果,請在指令中附加 --preview
旗標。
當您啟動部署作業時,Deployment Manager 會根據 deployment-type.py.schema
檔案中的定義,驗證 template.yaml
檔案中的規格。如果驗證成功,Deployment Manager 會使用 template.yaml
和 deployment-type.py
檔案中的資源定義建立 Google Cloud 資源。
Deployment Manager 處理程序完成後,Deployment Manager 會在 Cloud Shell 中為所建立的每個資源顯示 COMPLETED
,並將控制權傳遞給 Shell 指令碼。
殼層指令碼會進一步設定已部署的資源,並在 Cloud Logging 中記錄其進度。殼層指令碼完成處理作業後,SAP 部署作業才算完成。
Deployment Manager 也會在 Google Cloud 主控台的「Deployments」頁面中建立項目,讓您查看部署作業的其他詳細資料。
範本的進階自訂
除了在 YAML 設定檔中新增 VM 定義或進行其他小幅變更,如果您是進階使用者,也可以透過其他方式自訂Google Cloud 提供的 Deployment Manager 範本,但這可能會帶來風險。
如果您修改範本,就必須負責修改後的範本,包括確保範本為最新版本,且 Deployment Manager 可處理該範本。您也必須負責確保修改後的範本部署的 Google Cloud 基礎架構和 SAP 系統符合 SAP 和 Google Cloud 支援性需求,包括 SAP 需求。
修改 Deployment Manager 範本也會讓 Google Cloud 更難支援您的部署作業。Cloud Customer Care 的 SAP 專家熟悉未經修改的範本和部署的設定,但不熟悉您的專屬自訂項目。如果您需要 Google Cloud 為使用自訂範本的部署或設定提供支援,請準備好說明您的自訂項目,並等待較長的時間,讓支援案件獲得解決。
修改 Google Cloud 為 SAP 提供的 Deployment Manager 範本前,請務必確保您有專業技術團隊可提供變更建議、評估變更對系統效能造成的影響,以及協助排解日後可能發生的問題。如果您沒有這類團隊,導入合作夥伴或 Google Cloud 專業服務 的專家都能提供協助。
如要進行變更,您必須瞭解:
- SAP 說明文件和 SAP 注意事項中定義的 SAP 支援性需求,適用於您的 SAP 產品。
- Deployment Manager 和如何使用部署、設定和範本。請參閱 Deployment Manager 說明文件。
- 視您所做的變更類型而定,Python 或 shell 指令碼語言。
進階自訂類型
以下修改項目視為進階自訂項目:
- 部署後指令碼中的自訂處理或動作。這是在部署中加入進階自訂項目的建議方法。
- 使用 Red Hat Enterprise Linux for SAP 或 SUSE Linux Enterprise Server for SAP 的支援版本以外的作業系統類型。
- 修改範本中提供的後端指令碼:
- 殼層指令碼 (bash 或 powershell)。
- Python 動態設定和結構定義檔案。
- 高可用性部署:
- 自訂 Pacemaker 設定。如果您發現缺少特定功能,請在說明文件頁面提供意見回饋。
- 針對具有待命節點的 HANA 向外擴充部署作業,變更預設範本。
無論您進行何種變更,請確保變更結果是在 SAP 產品說明文件和 SAP 附註所定義的支援範圍內,且適用於您的系統。
可自訂的範本檔案
Google Cloud 建議您將自訂項目限制在 .yaml
設定檔中,但您也可以修改其他 Deployment Manager 檔案,只要產生的 SAP 系統符合 SAP 支援性需求即可。
您需要修改的檔案取決於您需要進行的變更類型。
如要針對環境專屬的屬性值新增額外驗證檢查,您可以將屬性定義新增至 deployment-type.py.schema
檔案。
您可以在 deployment-type.py
檔案中進行變更,例如:
- 在設定檔中針對值 (例如 IP 範圍或磁碟大小) 新增其他計算。請注意,變更磁碟大小 (特別是 SAP HANA) 可能會導致設定不符合 SAP 支援需求。
- 新增其他 VM 執行個體中繼資料。
- 調整磁碟名稱。
下載範本檔案
如要下載檔案,請先將紅色斜體文字替換為所需範本的值,然後使用下列指令:
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py.schema wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/startup.sh wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/template.yaml
舉例來說,如果您需要下載 SAP HANA 擴大部署的範本檔案,請使用下列指令:
wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py.schema wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/startup.sh wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml
使用修改過的範本檔案
修改完範本檔案後,請將這些檔案上傳至 Cloud Storage 值區或網路伺服器,並將 template.yaml
和其他檔案中的網址更新為檔案位置。
部署後指令碼
您可以使用部署後指令碼執行其他動作,例如觸發 SAP NetWeaver 應用程式和監控代理程式的安裝作業等等。
建議您使用部署後指令碼來自訂部署作業,因為這些指令碼只會在 Google Cloud基礎架構依據 SAP 支援性需求進行設定後才會取得控制權。
如要顯示部署後指令碼的狀態訊息,您必須編寫指令碼,才能將訊息寫入記錄。詳情請參閱 Cloud Logging 說明文件。
Deployment Manager 寫入 Cloud Shell 或本機 Google Cloud CLI 殼層工作階段的訊息中,不會包含部署後指令碼的狀態。
取得 SAP 適用的 Deployment Manager 範本支援
如需協助解決 SAP 的 Deployment Manager 範本相關問題,請收集必要的診斷資訊,然後與 Cloud Customer Care 團隊聯絡。如需所需的診斷資訊清單,請參閱 Deployment Manager 範本中的 SAP 診斷資訊。