開始使用 Ansible 設定
當您使用 SAP 部署自動化架構時,您可以執行 自動化基礎結構部署。 您也可以使用存放庫中提供的 Ansible 劇本來執行必要的作業系統設定,並安裝 SAP。 這些劇本位於資料夾中的自動化架構存放庫 /sap-automation/deploy/ansible
。
檔案名稱 | 描述 |
---|---|
playbook_01_os_base_config.yaml |
基本作業系統設定 |
playbook_02_os_sap_specific_config.yaml |
SAP 特定的作業系統組態 |
playbook_03_bom_processing.yaml |
SAP 材料帳單處理 |
playbook_04_00_00_hana_db_install |
SAP HANA 資料庫安裝 |
playbook_05_00_00_sap_scs_install.yaml |
SAP 中央服務安裝 |
playbook_05_01_sap_dbload.yaml |
資料庫載入器 |
playbook_04_00_01_hana_hsr.yaml |
SAP HANA 高可用性設定 |
playbook_05_02_sap_pas_install.yaml |
SAP 主要應用程式伺服器安裝 |
playbook_05_03_sap_app_install.yaml |
SAP 應用程式伺服器安裝 |
playbook_05_04_sap_web_install.yaml |
SAP Web Dispatcher 安裝 |
必要條件
Ansible 劇本需要目前目錄中的 sap-parameters.yaml
和 SID_host.yaml
檔案。
組態檔
檔案 sap-parameters.yaml
包含 Ansible 用於設定 SAP 基礎結構的資訊。
---
# bom_base_name is the name of the SAP Application Bill of Materials file
bom_base_name: S41909SPS03_v0010ms
# Set to true to instruct Ansible to update all the packages on the virtual machines
upgrade_packages: false
# TERRAFORM CREATED
sap_fqdn: sap.contoso.net
# kv_name is the name of the key vault containing the system credentials
kv_name: LABSECESAP01user###
# secret_prefix is the prefix for the name of the secret stored in key vault
secret_prefix: LAB-SECE-SAP01
# sap_sid is the application SID
sap_sid: L00
# scs_high_availability is a boolean flag indicating
# if the SAP Central Services are deployed using high availability
scs_high_availability: false
# SCS Instance Number
scs_instance_number: "00"
# scs_lb_ip is the SCS IP address of the load balancer in
# front of the SAP Central Services virtual machines
scs_lb_ip: 10.110.32.26
# ERS Instance Number
ers_instance_number: "02"
# ecs_lb_ip is the ERS IP address of the load balancer in
# front of the SAP Central Services virtual machines
ers_lb_ip:
# sap_sid is the database SID
db_sid: XDB
# platform
platform: HANA
# db_high_availability is a boolean flag indicating if the
# SAP database servers are deployed using high availability
db_high_availability: false
# db_lb_ip is the IP address of the load balancer in front of the database virtual machines
db_lb_ip: 10.110.96.13
disks:
- { host: 'l00dxdb00l0538', LUN: 0, type: 'sap' }
- { host: 'l00dxdb00l0538', LUN: 10, type: 'data' }
- { host: 'l00dxdb00l0538', LUN: 11, type: 'data' }
- { host: 'l00dxdb00l0538', LUN: 12, type: 'data' }
- { host: 'l00dxdb00l0538', LUN: 13, type: 'data' }
- { host: 'l00dxdb00l0538', LUN: 20, type: 'log' }
- { host: 'l00dxdb00l0538', LUN: 21, type: 'log' }
- { host: 'l00dxdb00l0538', LUN: 22, type: 'log' }
- { host: 'l00dxdb00l0538', LUN: 2, type: 'backup' }
- { host: 'l00app00l538', LUN: 0, type: 'sap' }
- { host: 'l00app01l538', LUN: 0, type: 'sap' }
- { host: 'l00scs00l538', LUN: 0, type: 'sap' }
...
檔案 L00_hosts.yaml
是 Ansible 用於設定 SAP 基礎結構的清查檔案。 您的 L00
部署標籤可能會有所不同。
L00_DB:
hosts:
l00dxdb00l0538:
ansible_host : 10.110.96.12
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
vars:
node_tier : hana
L00_SCS:
hosts:
l00scs00l538:
ansible_host : 10.110.32.25
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
vars:
node_tier : scs
L00_ERS:
hosts:
vars:
node_tier : ers
L00_PAS:
hosts:
l00app00l538:
ansible_host : 10.110.32.24
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
vars:
node_tier : pas
L00_APP:
hosts:
l00app01l538:
ansible_host : 10.110.32.15
ansible_user : azureadm
ansible_connection : ssh
connection_type : key
vars:
node_tier : app
L00_WEB:
hosts:
vars:
node_tier : web
執行劇本
執行此步驟之前,請確定您已 將 SAP 軟體 下載至 Azure 環境。
您可以執行劇本的其中一種方式是使用組態功能表。
configuration_menu
執行腳本。
${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh
若要執行劇本或多個劇本,請使用下列 ansible-playbook
命令。 此範例會執行作業系統設定劇本。
sap_params_file=sap-parameters.yaml
if [[ ! -e "${sap_params_file}" ]]; then
echo "Error: '${sap_params_file}' file not found!"
exit 1
fi
# Extract the sap_sid from the sap_params_file, so that we can determine
# the inventory file name to use.
sap_sid="$(awk '$1 == "sap_sid:" {print $2}' ${sap_params_file})"
kv_name="$(awk '$1 == "kv_name:" {print $2}' ${sap_params_file})"
prefix="$(awk '$1 == "secret_prefix:" {print $2}' ${sap_params_file})"
password_secret_name=$prefix-sid-password
password_secret=$(az keyvault secret show --vault-name ${kv_name} --name ${password_secret_name} --query value --output table )
export ANSIBLE_PASSWORD=$password_secret
export ANSIBLE_INVENTORY="${sap_sid}_hosts.yaml"
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
export ANSIBLE_COLLECTIONS_PATHS=/opt/ansible/collections${ANSIBLE_COLLECTIONS_PATHS:+${ANSIBLE_COLLECTIONS_PATHS}}
export ANSIBLE_REMOTE_USER=azureadm
export ANSIBLE_PYTHON_INTERPRETER=auto_silent
# Set of options that will be passed to the ansible-playbook command
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@${sap_params_file}"
-e ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
"${@}"
)
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_01_os_base_config.yaml
作業系統設定
操作系統設定劇本可用來設定 SAP 虛擬機的作業系統。 劇本會執行下列工作。
您可以使用下列其中一項來執行劇本:
- 選擇
Core Operating System Configuration
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
configuration_menu.sh
。 - 命令列。
下列工作會在Linux虛擬機上執行:
- 啟用作業的
sudo
記錄。 - 請確定已正確設定 Azure 虛擬機代理程式。
- 請確定所有存放庫都已註冊並啟用。
- 請確定已安裝所有套件。
- 建立磁碟區群組和邏輯磁碟區。
- 設定核心參數。
- 設定更多網路介面的路由(如有必要)。
- 建立用戶帳戶和群組。
- 設定登入時顯示的橫幅。
- 設定所需的服務。
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 特定的作業系統組態劇本可用來設定 SAP 虛擬機的作業系統。 劇本會執行下列工作。
下列工作會在Linux虛擬機上執行:
- 設定 hosts 檔案。
- 請確定所有 SAP 特定存放庫都已註冊並啟用。
- 請確定已安裝所有 SAP 特定套件。
- 執行磁碟掛接作業。
- 設定SAP特定服務。
- 實作相關 SAP 附注中所定義的組態。
您可以使用下列其中一項來執行劇本:
- 選擇
SAP Operating System Configuration
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
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 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 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
本機軟體下載
此劇本會將安裝媒體從控制平面下載到安裝媒體來源。 安裝媒體可以從中央服務實例或從 Azure 檔案儲存體 或 Azure NetApp Files 共用。
您可以使用下列其中一項來執行劇本:
- 選擇
Local software download
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
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 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
SAP 中央服務和高可用性設定
此劇本會執行中央服務安裝。 針對高可用性案例,劇本也會設定 SAP Central Services 所需的 Pacemaker 叢集,以取得 Linux 上的高可用性,以及 Windows 的 Windows 故障轉移叢集。
您可以使用下列其中一項來執行劇本:
- 選擇
SCS Installation & High Availability Configuration
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
configuration_menu.sh
。 - 命令列。
劇本會執行下列工作:
- 中央服務安裝
- 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
資料庫安裝
此劇本會執行資料庫伺服器安裝。
您可以使用下列其中一項來執行劇本:
- 選擇
Database installation
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
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 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
資料庫載入
此劇本會執行資料庫負載。
您可以使用下列其中一項來執行劇本:
- 選擇
Database Load
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
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 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
資料庫高可用性設定
此劇本會執行資料庫伺服器高可用性設定。
您可以使用下列其中一項來執行劇本:
- 選擇
Database High Availability Configuration
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
configuration_menu.sh
。 - 命令列。
劇本會執行下列工作:
- 資料庫高可用性設定。
- 針對 HANA,劇本也會設定 SAP HANA 所需的 Pacemaker 叢集,以取得 Linux 上的高可用性,並設定 HANA 系統復寫。
- 針對 Oracle,劇本也會設定 Oracle Data Guard。
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
主要應用程式伺服器安裝
此劇本會執行主要應用程式伺服器的安裝。
您可以使用下列其中一項來執行劇本:
- 選擇
Primary Application Server Installation
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
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 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
其他應用程式伺服器安裝
此劇本會執行應用程式伺服器的安裝。
您可以使用下列其中一項來執行劇本:
- 選擇
Application Server Installation
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
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 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 發送器的安裝。
您可以使用下列其中一項來執行劇本:
- 選擇
Web Dispatcher Installation
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
configuration_menu.sh
。 - 命令列。
劇本會執行下列工作:
- Web 發送器安裝
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
ACSS 註冊
此劇本會執行 Azure Center for SAP Solutions (ACSS) 註冊。
您可以使用下列其中一項來執行劇本:
- 選擇
Register System in ACSS
,以使用DevOps管線Configuration and SAP installation
。 - 組態選單文稿
configuration_menu.sh
。 - 命令列。
劇本會執行下列工作:
- ACSS 註冊
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_06_00_acss_registration.yaml