教學課程:部署適用於企業規模的SAP部署自動化架構
本教學課程說明如何使用SAP部署自動化架構來執行部署。 此範例會使用 Azure Cloud Shell 來部署控制平面基礎結構。 部署者虛擬機 (VM) 會建立其餘的基礎結構和 SAP HANA 組態。
在本教學課程中,您會執行下列工作:
- 部署控制平面(部署器基礎結構和連結庫)。
- 部署工作負載區域(橫向和系統)。
- 下載/上傳材料帳單。
- 設定標準和 SAP 特定的作業系統設定。
- 安裝 HANA 資料庫。
- 安裝 SAP Central Services (SCS) 伺服器。
- 載入 HANA 資料庫。
- 安裝主要應用程式伺服器。
使用自動化架構在 Azure 上部署 SAP 有三個主要步驟:
準備區域。 您可以部署元件以支援指定 Azure 區域中的 SAP 自動化架構。 在此步驟中,您會:
- 建立部署環境。
- 建立 Terraform 狀態檔案的共享記憶體。
- 建立 SAP 安裝媒體的共享記憶體。
準備工作負載區域。 您可以部署工作負載區域元件,例如虛擬網路和金鑰保存庫。
部署系統。 您可以部署 SAP 系統的基礎結構。
部署自動化程式中有數個工作流程。 本教學課程著重於一個工作流程,以方便部署。 您可以使用 Bash 來部署此工作流程 SAP S4 HANA 獨立環境。 本教學課程說明部署的一般階層和不同階段。
環境概觀
SAP 部署自動化架構有兩個主要元件:
- 部署基礎結構(控制平面)
- SAP 基礎結構 (SAP 工作負載)
下圖顯示控制平面與應用平面之間的相依性。
架構會使用 Terraform 進行基礎結構部署,並使用 Ansible 進行作業系統和應用程式設定。 下圖顯示控制平面和工作負載區域的邏輯分隔。
管理區域
管理區域包含部署其他環境的控制平面基礎結構。 部署管理區域之後,您很少需要重新部署。
部署者是SAP自動化架構的執行引擎。 此預先設定的 VM 用於執行 Terraform 和 Ansible 命令。
SAP 連結 庫 提供 Terraform 狀態檔案的永續性記憶體,以及控制平面下載的 SAP 安裝媒體。
您可以在 Terraform .tfvars
變數檔案中設定部署器和連結庫。 如需詳細資訊,請參閱 設定控制平面。
工作負載區域
SAP 應用程式通常具有多個部署層。 例如,您可能有開發、品質保證和生產層。 SAP 部署自動化架構會呼叫這些層工作負載區域。
SAP 工作負載區域包含 SAP VM 的網路和共用元件。 這些元件包括路由表、網路安全組和虛擬網路。 環境可讓您將部署分成不同的環境。 如需詳細資訊,請參閱 設定工作負載區域。
系統部署包含要執行 SAP 應用程式的 VM,包括 Web、應用程式和資料庫層。 如需詳細資訊,請參閱 設定 SAP 系統。
必要條件
SAP 部署自動化架構存放庫可在 GitHub 上取得。
您必須部署 Azure Bastion,或使用安全殼層 (SSH) 用戶端來連線到部署者。 使用任何您熟悉的 SSH 用戶端。
檢閱 Azure 訂用帳戶配額
請確定您的 Azure 訂用帳戶在選取區域中有足夠的 DdSV4 和 EdsV4 系列 SKU 核心報價。 每個 VM 系列可用的大約 50 個核心應該就足夠了。
SAP 軟體下載的 S-用戶帳戶
需要具有軟體下載許可權的有效 SAP 用戶帳戶(SAP-User 或 S-User 帳戶),才能下載 SAP 軟體。
設定 Cloud Shell
登入您的 Azure 帳戶。
az login
驗證您的登入。 除非您收到提示,否則請勿關閉視窗。
驗證作用中的訂用帳戶,並記錄您的訂用帳戶標識碼:
az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
或:
az account list --output=table | grep True
如有必要,請變更作用中的訂用帳戶。
az account set --subscription <Subscription ID>
驗證您的作用中訂用帳戶已變更。
az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
選擇性地移除所有部署成品。 當您想要移除先前部署成品的所有剩餘部分時,請使用此命令。
cd ~ rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.d
建立部署資料夾並複製存放庫。
mkdir -p ${HOME}/Azure_SAP_Automated_Deployment; cd $_ git clone https://github.com/Azure/sap-automation-bootstrap.git config git clone https://github.com/Azure/sap-automation.git sap-automation git clone https://github.com/Azure/sap-automation-samples.git samples cp -Rp samples/Terraform/WORKSPACES ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
您可以選擇性地驗證 Cloud Shell 實例上可用的 Terraform 和 Azure CLI 版本。
./sap-automation/deploy/scripts/helpers/check_workstation.sh
若要執行自動化架構,請更新為下列版本:
az
2.5.0 版或更高版本。terraform
1.5 版或更高版本。 視需要使用 Terraform 指示進行升級。
建立服務主體
SAP 自動化部署架構會使用服務主體進行部署。 建立控制平面部署的服務主體。 請務必使用具有許可權的帳戶來建立服務主體。
當您為服務主體選擇名稱時,請確定該名稱在您的 Azure 租使用者中是唯一的。
提供服務主體參與者和使用者存取 管理員 istrator 許可權。
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export control_plane_env_code="LAB" az ad sp create-for-rbac --role="Contributor" \ --scopes="/subscriptions/${ARM_SUBSCRIPTION_ID}" \ --name="${control_plane_env_code}-Deployment-Account"
檢閱輸出。 例如:
{ "appId": "<AppId>", "displayName": "<environment>-Deployment-Account ", "name": "<AppId>", "password": "<AppSecret>", "tenant": "<TenantId>" }
複製輸出詳細數據。 請務必儲存、
password
和Tenant
的值appId
。輸出會對應至下列參數。 您可以在後續步驟中使用這些參數,並搭配自動化命令。
參數輸入名稱 輸出名稱 spn_id
appId
spn_secret
password
tenant_id
tenant
或者,將使用者存取 管理員 istrator 角色指派給服務主體。
export appId="<appId>" az role assignment create --assignee ${appId} \ --role "User Access Administrator" \ --scope /subscriptions/${ARM_SUBSCRIPTION_ID}
重要
如果您未將使用者存取 管理員 istrator 角色指派給服務主體,則無法使用自動化來指派許可權。
設定控制平面 Web 應用程式認證
在 SAP 自動化架構控制平面中,您可以選擇性地建立互動式 Web 應用程式,以協助您建立必要的組態檔。
建立應用程式註冊
如果您想要使用 Web 應用程式,您必須先建立應用程式註冊以進行驗證。 開啟 Cloud Shell 並執行下列命令:
視需要將 LAB 取代為您的環境。
export env_code="LAB"
echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json
export TF_VAR_app_registration_app_id=$(az ad app create \
--display-name ${env_code}-webapp-registration \
--enable-id-token-issuance true \
--sign-in-audience AzureADMyOrg \
--required-resource-access @manifest.json \
--query "appId" --output tsv )
#remove the placeholder manifest.json
rm manifest.json
export TF_VAR_webapp_client_secret=$(az ad app credential reset \
--id $TF_VAR_app_registration_app_id --append \
--query "password" --output tsv )
export TF_use_webapp=true
echo "App registration ID: ${TF_VAR_app_registration_app_id}"
echo "App registration password: ${TF_VAR_webapp_client_secret}"
注意
請確定您已使用具有建立應用程式註冊所需許可權的用戶帳戶登入。 如需應用程式註冊的詳細資訊,請參閱 建立應用程式註冊。
複製輸出詳細數據。 請務必儲存和App registration password
的值App registration ID
。
輸出會對應至下列參數。 您可以在後續步驟中使用這些參數,並搭配自動化命令。
參數輸入名稱 | 輸出名稱 |
---|---|
app_registration_app_id |
App registration ID |
webapp_client_secret |
App registration password |
檢視設定檔
從 Cloud Shell 開啟 Visual Studio Code。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES code .
WORKSPACES
展開目錄。 有六個子資料夾:CONFIGURATION
、、DEPLOYER
LANDSCAPE
、LIBRARY
、、SYSTEM
和BOMS
。 展開每個資料夾,以尋找區域部署組態檔。在適當的子資料夾中尋找 Terraform 變數檔案。 例如,
DEPLOYER
Terraform 變數檔案看起來可能像下列範例:# The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP. environment = "LAB" # The location/region value is a mandatory field, it is used to control where the resources are deployed location = "swedencentral" # management_network_address_space is the address space for management virtual network management_network_address_space = "10.10.20.0/25" # management_subnet_address_prefix is the address prefix for the management subnet management_subnet_address_prefix = "10.10.20.64/28" # management_firewall_subnet_address_prefix is the address prefix for the firewall subnet management_firewall_subnet_address_prefix = "10.10.20.0/26" firewall_deployment = true # management_bastion_subnet_address_prefix is the address prefix for the bastion subnet management_bastion_subnet_address_prefix = "10.10.20.128/26" bastion_deployment = true # deployer_enable_public_ip controls if the deployer Virtual machines will have Public IPs deployer_enable_public_ip = true # deployer_count defines how many deployer VMs will be deployed deployer_count = 1 # use_service_endpoint defines that the management subnets have service endpoints enabled use_service_endpoint = true # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = false # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled enable_firewall_for_keyvaults_and_storage = false # public_network_access_enabled controls if storage account and key vaults have public network access enabled public_network_access_enabled = true
請記下 Terraform 變數檔案位置,以供未來在部署期間編輯。
在適當的子資料夾中尋找 SAP 連結庫的 Terraform 變數檔案。 例如,
LIBRARY
Terraform 變數檔案看起來可能像下列範例:# The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP. environment = "LAB" # The location/region value is a mandatory field, it is used to control where the resources are deployed location = "swedencentral" #Defines the DNS suffix for the resources dns_label = "lab.sdaf.contoso.net" # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = false
請記下 Terraform 變數檔案位置,以供未來在部署期間編輯。
重要
請確定 符合dns_label
您的 Azure 實例 私用 DNS。
部署控制平面
使用deploy_controlplane.sh腳本來部署部署器和連結庫。 這些部署部分組成所選自動化區域的控制平面。
部署會經歷部署基礎結構、重新整理狀態,以及將 Terraform 狀態檔案上傳至連結庫記憶體帳戶的迴圈。 這些步驟全都封裝成單一部署腳本。 腳本需要部署者和連結庫的組態檔位置,以及其他一些參數。
例如,選擇 [西歐 ] 作為部署位置,其名稱為四個字元 SECE
,如先前所述。 範例部署程式組態檔 LAB-SECE-DEP05-INFRASTRUCTURE.tfvars
位於 ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/LAB-SECE-DEP05-INFRASTRUCTURE
資料夾中。
範例 SAP 連結庫組態檔 LAB-SECE-SAP_LIBRARY.tfvars
位於 ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/LAB-SECE-SAP_LIBRARY
資料夾中。
設定服務主體的環境變數:
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"
如果您是從不屬於部署網路或 Cloud Shell 的工作站執行腳本,您可以使用下列命令來設定環境變數,以允許來自 IP 位址的連線:
export TF_VAR_Agent_IP=<your-public-ip-address>
如果您要部署組態 Web 應用程式,您也必須設定下列環境變數:
export TF_VAR_app_registration_app_id=<appRegistrationId> export TF_VAR_webapp_client_secret=<appRegistrationPassword> export TF_use_webapp=true
建立部署程式和 SAP 連結庫,並使用下列腳本,將服務主體詳細數據新增至部署密鑰保存庫:
export env_code="LAB" export vnet_code="DEP05" export region_code="SECE" export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" cd $CONFIG_REPO_PATH az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars" ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \ --deployer_parameter_file "${deployer_parameter_file}" \ --library_parameter_file "${library_parameter_file}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"
如果您遇到驗證問題,請執行
az logout
以註銷並清除token-cache
。 然後執行az login
以重新驗證。等候自動化架構執行 Terraform 作業
plan
與apply
。部署者的部署可能會執行約 15 到 20 分鐘。
您必須注意後續步驟的一些值。 在輸出中尋找此文字塊:
######################################################################################### # # # Please save these values: # # - Key Vault: LABSECEDEP05user39B # # - Deployer IP: x.x.x.x # # - Storage Account: labsecetfstate53e # # - Web Application Name: lab-sece-sapdeployment39B # # - App registration Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # # # #########################################################################################
前往 Azure 入口網站。
選取 [資源群組]。 尋找部署者基礎結構和連結庫的新資源群組。 例如,您可能會看到
LAB-[region]-DEP05-INFRASTRUCTURE
和LAB-[region]-SAP_LIBRARY
。部署者和 SAP 連結庫資源群組的內容如下所示。
Terraform 狀態檔案現在會放在名稱包含
tfstate
的記憶體帳戶中。 記憶體帳戶具有名為tfstate
的容器,其中包含部署器和連結庫狀態檔案。 成功部署控制平面之後,容器的內容tfstate
如下所示。
常見問題與解決方案
以下是一些疑難排解提示:
如果您在建立部署程式模組時收到下列錯誤,請確定您在執行文稿時位於
WORKSPACES
目錄中:Incorrect parameter file. The file must contain the environment attribute!!
下列錯誤是暫時性的。 重新執行相同的命令。
deploy_controlplane.sh
Error: file provisioner error .. timeout - last error: dial tcp
如果您在執行文稿
deploy_controlplane.sh
之後直接遇到驗證問題,請執行此命令:az logout az login
連線 部署者 VM
部署控制平面之後,會使用遠端後端 azurerm
來儲存 Terraform 狀態。 聯機到部署者 VM 的所有秘密都可在部署者資源群組的密鑰保存庫中取得。
若要連線到您的部署者 VM:
登入 Azure 入口網站。
選取或搜尋 [金鑰保存庫]。
在 [金鑰保存庫] 頁面上,尋找部署器金鑰保存庫。 名稱開頭為
LAB[REGION]DEP05user
。 視需要依 資源群組 或 位置進行篩選。在左窗格中的 [設定] 區段上,選取 [秘密]。
尋找並選取包含 sshkey 的秘密。 它看起來可能像
LAB-[REGION]-DEP05-sshkey
。在祕密的頁面上,選取目前的版本。 然後,複製秘密值。
開啟純文字編輯器。 複製祕密值。
將檔案儲存至您存放 SSH 金鑰的位置。 例如,使用
C:\\Users\\<your-username>\\.ssh
。儲存檔案。 如果系統提示您選擇 [存檔類型],請在 [SSH] 無法選取時,選取 [所有檔案]。 例如,使用
deployer.ssh
。連線 透過任何 SSH 用戶端傳送至部署者 VM,例如 Visual Studio Code。 使用您稍早注意到的公用IP位址,以及您下載的SSH金鑰。 如需如何使用 Visual Studio Code 連線到部署者的指示,請參閱使用 Visual Studio Code 將 連線 至部署者。 如果您使用 PuTTY,請先使用 PuTTYGen 轉換 SSH 金鑰檔案。
注意
默認使用者名稱為 azureadm。
請確定您用來儲存 SSH 金鑰的檔案可以使用正確的格式來儲存盤案,也就是沒有歸位字元 (CR) 字元。 使用 Visual Studio Code 或 記事本++。
連線到部署者 VM 之後,您可以使用材料帳單 (BOM) 下載 SAP 軟體。
當您不使用公用IP時,連線部署者 VM
對於沒有公用IP連線的部署,不允許透過因特網直接連線。 在這些情況下,您可以使用 Azure Bastion 跳躍方塊,或從連線到 Azure 虛擬網路的電腦執行下一個步驟。
下列範例使用 Azure Bastion。
若要連線到部署者:
登入 Azure 入口網站。
移至包含部署者 VM 的資源群組。
使用 Azure Bastion 將 連線 至 VM。
默認使用者名稱為 azureadm。
從 Azure 金鑰保存庫 選取 [SSH 私鑰]。
選取包含控制平面的訂用帳戶。
選取部署器金鑰保存庫。
從秘密清單中,選取以 -sshkey 結尾的秘密。
連線至 VM。
其餘的工作必須在部署器上執行。
保護控制平面
控制平面是SAP自動化架構中最重要的部分。 保護控制平面很重要。 下列步驟可協助您保護控制平面。
您應該更新控制平面 tfvars
檔案,以啟用私人端點,並封鎖對記憶體帳戶和密鑰保存庫的公用存取。
若要將控制平面組態檔複製到部署者 VM,您可以使用
sync_deployer.sh
腳本。 登入部署者 VM 並更新下列命令,以使用您的 Terraform 狀態記憶體帳戶名稱。 然後,執行下列腳本:terraform_state_storage_account=labsecetfstate### cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES ../sap-automation/deploy/scripts/sync_deployer.sh --storageaccountname $terraform_state_storage_account --state_subscription $ARM_SUBSCRIPTION_ID
此命令會將
tfvars
配置檔從 SAP Library 的記憶體帳戶複製到部署者 VM。將控制平面的組態檔變更為:
# use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = true # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled enable_firewall_for_keyvaults_and_storage = true # public_network_access_enabled controls if storage account and key vaults have public network access enabled public_network_access_enabled = false #if you want to use the webapp use_webapp=true
重新執行部署以套用變更。 更新文稿中的記憶體帳戶名稱和金鑰保存庫名稱。
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"
建立部署器和 SAP 連結庫。
export env_code="LAB" export vnet_code="DEP05" export region_code="SECE" terraform_state_storage_account=labsecetfstate### vault_name="LABSECEDEP05user###" export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" cd $CONFIG_REPO_PATH deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars" az logout az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \ --deployer_parameter_file "${deployer_parameter_file}" \ --library_parameter_file "${library_parameter_file}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --storageaccountname "${terraform_state_storage_account}" \ --vault "${vault_name}"
部署 Web 應用程式
您可以使用下列腳本來部署 Web 應用程式:
export env_code="LAB"
export vnet_code="DEP05"
export region_code="SECE"
export webapp_name="<webAppName>"
export app_id="<appRegistrationId>"
export webapp_id="<webAppId>"
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
cd $DEPLOYMENT_REPO_PATH
cd Webapp/SDAF
dotnet build SDAFWebApp.csproj
dotnet publish SDAFWebApp.csproj --output publish
cd publish
zip -r SDAF.zip .
az webapp deploy --resource-group ${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE --name $webapp_name --src-path SDAF.zip --type zip
az ad app update --id $app_id --web-home-page-url https://$webapp_name.azurewebsites.net --web-redirect-uris https://$webapp_name.azurewebsites.net/ https://$webapp_name.azurewebsites.net/.auth/login/aad/callback
az role assignment create --assignee $webapp_id --role reader --subscription $ARM_SUBSCRIPTION_ID --scope /subscriptions/$ARM_SUBSCRIPTION_ID
az webapp restart --resource-group ${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE --name $webapp_name
收集工作負載區域資訊
在文字編輯器中收集下列資訊。 此資訊是在「部署控制平面」階段結束時收集的。
連結庫資源群組中 Terraform 狀態檔案記憶體帳戶的名稱:
- 在上述範例中,資源群組是
LAB-SECE-SAP_LIBRARY
。 - 儲存器帳戶的名稱包含
labsecetfstate
。
- 在上述範例中,資源群組是
部署者資源群組中的金鑰儲存庫名稱:
- 在上述範例中,資源群組是
LAB-SECE-DEP05-INFRASTRUCTURE
。 - 金鑰儲存庫的名稱包含
LABSECEDEP05user
。
- 在上述範例中,資源群組是
部署者 VM 的公用 IP 位址。 移至部署者的資源群組,開啟部署者 VM,然後複製公用 IP 位址。
您需要收集下列資訊:
- 部署者狀態檔案的名稱位於連結庫資源群組底下:
- 選取 [連結庫資源群組>狀態記憶體帳戶>容器]。>
tfstate
複製部署者狀態檔的名稱。 - 在上述範例中,Blob 的名稱是
LAB-SECE-DEP05-INFRASTRUCTURE.terraform.tfstate
。
- 選取 [連結庫資源群組>狀態記憶體帳戶>容器]。>
- 部署者狀態檔案的名稱位於連結庫資源群組底下:
如有必要,請註冊服務主體。 在本教學課程中,不需要此步驟。
第一次具現化環境時,必須註冊服務主體。 在本教學課程中,控制平面位於
LAB
環境中,工作負載區域也位於LAB
中。 基於這個理由,必須為LAB
環境註冊服務主體。export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appID>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenant>" export key_vault="<vaultName>" export env_code="LAB" export region_code="SECE" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/set_secrets.sh \ --environment "${env_code}" \ --region "${region_code}" \ --vault "${key_vault}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"
準備工作負載區域部署
連線 至部署者 VM,以取得下列步驟。 存放庫的複本現在已存在。
部署工作負載區域
使用install_workloadzone腳本來部署 SAP 工作負載區域。
在部署者 VM 上,移至
Azure_SAP_Automated_Deployment
資料夾。cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTURE
或者,開啟工作負載區域組態檔,並視需要變更網路邏輯名稱以符合網路名稱。
開始部署工作負載區域。 這裡需要您先前收集的詳細資料:
- 部署程式
tfstate
檔案的名稱(在容器中找到tfstate
) tfstate
記憶體帳戶的名稱- 部署者金鑰保存庫的名稱
- 部署程式
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
export ARM_CLIENT_ID="<appId>"
export ARM_CLIENT_SECRET="<password>"
export ARM_TENANT_ID="<tenantId>"
export deployer_env_code="LAB"
export sap_env_code="LAB"
export region_code="SECE"
export deployer_vnet_code="DEP05"
export vnet_code="SAP04"
export tfstate_storage_account="<storageaccountName>"
export key_vault="<vaultName>"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}"
cd "${CONFIG_REPO_PATH}/LANDSCAPE/${sap_env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE"
parameterFile="${sap_env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars"
deployerState="${deployer_env_code}-${region_code}-${deployer_vnet_code}-INFRASTRUCTURE.terraform.tfstate"
$SAP_AUTOMATION_REPO_PATH/deploy/scripts/install_workloadzone.sh \
--parameterfile "${parameterFile}" \
--deployer_environment "${deployer_env_code}" \
--deployer_tfstate_key "${deployerState}" \
--keyvault "${key_vault}" \
--storageaccountname "${tfstate_storage_account}" \
--subscription "${ARM_SUBSCRIPTION_ID}" \
--spn_id "${ARM_CLIENT_ID}" \
--spn_secret "${ARM_CLIENT_SECRET}" \
--tenant_id "${ARM_TENANT_ID}"
工作負載區域部署應該會自動啟動。
等待部署完成。 新的資源群組會出現在 Azure 入口網站 中。
準備部署 SAP 系統基礎結構
連線 至部署者 VM,以取得下列步驟。 存放庫的複本現在已存在。
移至資料夾, WORKSPACES/SYSTEM
然後複製要從存放庫使用的範例組態檔。
部署 SAP 系統基礎結構
工作負載區域完成後,您可以部署 SAP 系統基礎結構資源。 SAP 系統會為您的 SAP 應用程式建立 VM 和支援元件。 使用 installer.sh 腳本來部署 SAP 系統。
SAP 系統會部署:
- 資料庫層,其會部署資料庫 VM 及其磁碟和 Azure Standard Load Balancer 實例。 您可以在這一層中執行 HANA 資料庫或 AnyDB 資料庫。
- SCS 層,其會部署客戶定義的 VM 數目和 Azure Standard Load Balancer 實例。
- 應用層,其會部署 VM 及其磁碟。
- Web 發送器層。
部署 SAP 系統。
export sap_env_code="LAB"
export region_code="SECE"
export vnet_code="SAP04"
export SID="L00"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
cd ${CONFIG_REPO_PATH}/SYSTEM/${sap_env_code}-${region_code}-${vnet_code}-${SID}
${DEPLOYMENT_REPO_PATH}/deploy/scripts/installer.sh \
--parameterfile "${sap_env_code}-${region_code}-${vnet_code}-${SID}.tfvars" \
--type sap_system
檢查系統資源群組現在位於 Azure 入口網站 中。
使用材料帳單取得 SAP 軟體
自動化架構可讓您使用SAP BOM 從SAP 下載軟體的工具。 軟體會下載到 SAP 連結庫,做為部署 SAP 所需的所有媒體的封存。
SAP BOM 會模擬 SAP 維護規劃工具。 有相關的產品標識碼和一組下載 URL。
BOM 檔案的範例擷取看起來像下列範例:
---
name: 'S41909SPS03_v0010'
target: 'S/4 HANA 1909 SPS 03'
version: 7
product_ids:
dbl: NW_ABAP_DB:S4HANA1909.CORE.HDB.ABAP
scs: NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAP
scs_ha: NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAPHA
pas: NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAP
pas_ha: NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAPHA
app: NW_DI:S4HANA1909.CORE.HDB.PD
app_ha: NW_DI:S4HANA1909.CORE.HDB.ABAPHA
web: NW_Webdispatcher:NW750.IND.PD
ers: NW_ERS:S4HANA1909.CORE.HDB.ABAP
ers_ha: NW_ERS:S4HANA1909.CORE.HDB.ABAPHA
materials:
dependencies:
- name: HANA_2_00_055_v0005ms
media:
# SAPCAR 7.22
- name: SAPCAR
archive: SAPCAR_1010-70006178.EXE
checksum: dff45f8df953ef09dc560ea2689e53d46a14788d5d184834bb56544d342d7b
filename: SAPCAR
permissions: '0755'
url: https://softwaredownloads.sap.com/file/0020000002208852020
# Kernel
- name: "Kernel Part I ; OS: Linux on x86_64 64bit ; DB: Database independent"
在這裡範例組態中,資源群組為 LAB-SECE-DEP05-INFRASTRUCTURE
。 部署者金鑰保存庫名稱包含在 LABSECEDEP05user
名稱中。 您可以使用這項資訊來設定部署者的金鑰保存庫秘密。
連線 您的部署者 VM,以取得下列步驟。 存放庫的複本現在已存在。
使用 SAP 使用者帳戶的使用者名稱新增秘密。 將取代
<vaultName>
為您部署者金鑰保存庫的名稱。 也請將 取代<sap-username>
為您的 SAP 用戶名稱。export key_vault=<vaultName> sap_username=<sap-username> az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
使用 SAP 使用者帳戶的密碼新增秘密。
<vaultName>
取代為您的部署者金鑰儲存庫名稱,並以您的 SAP 密碼取代<sap-password>
。注意
當您設定
sap_user_password
時,使用單引號很重要。 密碼中特殊字元的使用可能會導致無法預期的結果。sap_user_password='<sap-password>' az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value="${sap_user_password}";
設定下載程式的 SAP 參數檔案。 然後,使用 Ansible 劇本下載 SAP 軟體。 執行下列命令:
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES mkdir BOMS cd BOMS vi sap-parameters.yaml
bom_base_name
使用名稱 BOM 更新 。 將取代<Deployer KeyVault Name>
為部署者資源群組的 Azure 金鑰保存庫名稱。您的檔案看起來應該類似下列範例組態:
bom_base_name: S42022SPS00_v0001ms deployer_kv_name: <vaultName> BOM_directory: ${HOME}/Azure_SAP_Automated_Deployment/samples/SAP
執行 Ansible 劇本以下載軟體。 您可以執行劇本的其中一種方式是使用下載 程式 功能表。
download_menu
執行腳本。${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh
選取要執行的劇本。
1) BoM Downloader 3) Quit Please select playbook:
選取劇本
1) BoM Downloader
,將 BOM 檔案中所述的 SAP 軟體下載到記憶體帳戶。sapbits
檢查容器是否已安裝您的所有媒體。您可以使用組態功能表或直接從命令行執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/BOMS/ export ANSIBLE_PRIVATE_KEY_FILE=sshkey playbook_options=( --inventory-file="${sap_sid}_hosts.yaml" --private-key=${ANSIBLE_PRIVATE_KEY_FILE} --extra-vars="_workspace_directory=`pwd`" --extra-vars="@sap-parameters.yaml" --extra-vars="bom_processing=true" "${@}" ) # Run the playbook to retrieve the ssh key from the Azure key vault ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml # Run the playbook to perform the Operating System configuration ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_bom_downloader.yaml
如有需要,您也可以將 SAP 使用者認證當做參數傳遞。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/BOMS/ sap_username=<sap-username> sap_user_password='<sap-password>' export ANSIBLE_PRIVATE_KEY_FILE=sshkey playbook_options=( --inventory-file="${sap_sid}_hosts.yaml" --private-key=${ANSIBLE_PRIVATE_KEY_FILE} --extra-vars="_workspace_directory=`pwd`" --extra-vars="@sap-parameters.yaml" --extra-vars="s_user=${sap_username}" --extra-vars="s_password=${sap_user_password}" --extra-vars="bom_processing=true" "${@}" ) # Run the playbook to retrieve the ssh key from the Azure key vault ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml # Run the playbook to perform the Operating System configuration ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_bom_downloader.yaml
SAP 應用程式安裝
SAP 應用程式安裝會透過 Ansible 劇本進行。
移至系統部署資料夾。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
請確定您目前資料夾中有下列檔案: sap-parameters.yaml
和 L00_host.yaml
。
針對獨立的 SAP S/4HANA 系統,有八個劇本可以依序執行。 您可以執行劇本的其中一種方式是使用組態功能表。
configuration_menu
執行腳本。
${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh
選擇要執行的劇本。
劇本:基本操作系統設定
此劇本會在所有計算機上執行一般操作系統元件設定,包括軟體存放庫、套件和服務設定。
您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to perform the Operating System configuration
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_01_os_base_config.yaml
劇本:SAP 特定的作業系統設定
此劇本會在所有電腦上執行 SAP 操作系統組態設定。 這些步驟包括建立磁碟區群組和文件系統,以及軟體存放庫、套件和服務設定。
您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to perform the SAP Specific Operating System configuration
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_02_os_sap_specific_config.yaml
劇本:BOM 處理
此劇本會將 SAP 軟體下載到 SCS VM。
您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_03_bom_processing.yaml
劇本:SCS 安裝
此劇本會安裝 SAP Central Services。 針對高可用性組態,劇本也會安裝 SAP ERS 實例並設定 Pacemaker。
您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_00_00_sap_scs_install.yaml
劇本:資料庫實例安裝
此劇本會安裝資料庫實例。
您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04_00_00_db_install.yaml
劇本:資料庫載入
此劇本會從主應用程式伺服器叫用資料庫載入工作。
您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_01_sap_dbload.yaml
劇本:資料庫高可用性設定
此劇本會設定資料庫高可用性。 對於 HANA,它需要 HANA 系統複寫和 HANA 資料庫的 Pacemaker。
您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04_00_01_db_ha.yaml
劇本:主要應用程式伺服器安裝
此劇本會安裝主要應用程式伺服器。 您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_02_sap_pas_install.yaml
劇本:應用程式伺服器安裝
此劇本會安裝應用程式伺服器。 您可以使用組態功能表或命令行來執行劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_02_sap_app_install.yaml
劇本:Web 發送器安裝
此劇本會安裝 Web 發送器。 您可以使用組態功能表或命令行來執行劇本。
您現在已部署並設定獨立 HANA 系統。 如果您需要設定高可用性 (HA) SAP HANA 資料庫,請執行 HANA HA 劇本。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure key vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_04_sap_web_install.yaml
清除安裝
完成之後,請務必從本教學課程清除 SAP 安裝。 否則,您會繼續產生與資源相關的成本。
若要移除您部署的整個 SAP 基礎結構,您需要:
- 拿掉 SAP 系統基礎結構資源。
- 拿掉所有工作負載區域(橫向)。
- 拿掉控制平面。
從部署者 VM 執行移除 SAP 基礎結構資源和工作負載區域。 從 Cloud Shell 執行移除控制平面。
開始之前,請先登入您的 Azure 帳戶。 然後,檢查您位於正確的訂用帳戶中。
拿掉 SAP 基礎結構
移至 LAB-SECE-SAP01-L00
資料夾內的 SYSTEM
子資料夾。 然後,執行此命令:
export sap_env_code="LAB"
export region_code="SECE"
export sap_vnet_code="SAP04"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/${sap_env_code}-${region_code}-${sap_vnet_code}-L00
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh \
--parameterfile "${sap_env_code}-${region_code}-${sap_vnet_code}-L00.tfvars" \
--type sap_system
拿掉 SAP 工作負載區域
移至 LAB-XXXX-SAP01-INFRASTRUCTURE
資料夾內的 LANDSCAPE
子資料夾。 然後,執行下列命令:
export sap_env_code="LAB"
export region_code="SECE"
export sap_vnet_code="SAP01"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/${sap_env_code}-${region_code}-${sap_vnet_code}-INFRASTRUCTURE
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh \
--parameterfile ${sap_env_code}-${region_code}-${sap_vnet_code}-INFRASTRUCTURE.tfvars \
--type sap_landscape
拿掉控制平面
登入 Cloud Shell。
移至 WORKSPACES
資料夾。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/
匯出下列兩個環境變數:
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
執行以下命令:
export region_code="SECE"
export env_code="LAB"
export vnet_code="DEP05"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remove_controlplane.sh \
--deployer_parameter_file DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars \
--library_parameter_file LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars
確認已清除所有資源。