

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用開放原始碼工具自動安裝 SAP 系統
<a name="install-sap-systems-automatically-by-using-open-source-tools"></a>

*Guilherme Sesterheim，Amazon Web Services*

## 總結
<a name="install-sap-systems-automatically-by-using-open-source-tools-summary"></a>

此模式說明如何使用開放原始碼工具來建立下列資源，以自動化 SAP 系統安裝：
+ SAP S/4HANA 1909 資料庫
+ SAP ABAP 中央服務 (ASCS) 執行個體
+ SAP 主要應用程式伺服器 (PAS) 執行個體

HashiCorp Terraform 會建立 SAP 系統的基礎設施，而 Ansible 會設定作業系統 (OS) 並安裝 SAP 應用程式。Jenkins 會執行 安裝。

此設定會將 SAP 系統安裝轉換為可重複的程序，這有助於提高部署效率和品質。

**注意**  
此模式中提供的範例程式碼適用於高可用性 (HA) 系統和非 HA 系統。

## 先決條件和限制
<a name="install-sap-systems-automatically-by-using-open-source-tools-prereqs"></a>

**先決條件**
+ 作用中的 AWS 帳戶
+ 包含所有 SAP 媒體檔案的 Amazon Simple Storage Service (Amazon S3) 儲存貯體
+ 具有[存取金鑰和私密金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)，且具有下列許可的 AWS Identity and Access Management (IAM) 主體：
  + **唯讀許可：**Amazon Route 53、AWS Key Management Service (AWS KMS)
  + **讀取和寫入許可：**Amazon S3、Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic File System (Amazon EFS)、IAM、Amazon CloudWatch、Amazon DynamoDB
+ Route 53 [私有託管區域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)
+ 在 Amazon Marketplace 中使用 [HA 和更新服務 8.2 Amazon Machine Image (AMI) 的 Red Hat Enterprise Linux for SAP](https://aws.amazon.com/marketplace/pp/prodview-5grz5a5thx7c2) 訂閱
+ [AWS KMS 客戶受管金鑰](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#aws-managed-customer-managed-keys)
+ [安全殼層 (SSH) 金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)
+ [Amazon EC2 安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)，允許從您安裝 Jenkins 的主機名稱 （主機名稱很可能是 **localhost**) 在連接埠 22 上進行 SSH 連線
+ HashiCorp 的 [Vagrant](https://www.vagrantup.com/) 已安裝並設定
+ 已安裝並設定 [VirtualBox](https://www.virtualbox.org/) by Oracle
+ 熟悉 Git、Terraform、Ansible 和 Jenkins

**限制**
+ 只有 SAP S/4HANA 1909 已針對此特定案例進行完整測試。如果您使用其他版本的 SAP HANA，此模式中的範例 Ansible 程式碼需要修改。
+ 此模式中的範例程序適用於 Mac OS 和 Linux 作業系統。某些命令只能在 Unix 型終端機中執行。不過，您可以使用不同的命令和 Windows 作業系統來達成類似的結果。

**產品版本**
+ SAP S/4HANA 1909
+ Red Hat Enterprise Linux (RHEL) 8.2 或更新版本

## Architecture
<a name="install-sap-systems-automatically-by-using-open-source-tools-architecture"></a>

下圖顯示使用開放原始碼工具自動化 AWS 帳戶中 SAP 系統安裝的範例工作流程：

![工作流程範例使用開放原始碼工具，自動在 AWS 帳戶中安裝 SAP 系統。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/aaf11dac-38cc-4e89-be86-51d4409cf238/images/d7902f9d-f1be-461f-b69b-cf3c663c8f2f.png)


該圖顯示以下工作流程：

1. Jenkins 透過執行 Terraform 和 Ansible 程式碼來協調執行 SAP 系統安裝。

1. Terraform 程式碼會建置 SAP 系統的基礎設施。

1. Ansible 程式碼會設定作業系統並安裝 SAP 應用程式。

1. Amazon EC2 執行個體上安裝 SAP S/4HANA 1909 資料庫、ASCS 執行個體和包含所有已定義先決條件的 PAS 執行個體。

**注意**  
此模式中的範例設定會自動在您的 AWS 帳戶中建立 Amazon S3 儲存貯體，以存放 Terraform 狀態檔案。

**技術堆疊**
+ Terraform
+ Ansible
+ Jenkins
+ SAP S/4HANA 1909 資料庫
+ SAP ASCS 執行個體
+ SAP PAS 執行個體
+ Amazon EC2 

## 工具
<a name="install-sap-systems-automatically-by-using-open-source-tools-tools"></a>

**AWS 服務**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) 在 AWS 雲端中提供可擴展的運算容量。您可以視需要啟動任意數量的虛擬伺服器，並快速向上或向下擴展。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 可透過控制已驗證並獲授權使用的人員，協助您安全地管理對 AWS 資源的存取。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 可協助您建立和控制密碼編譯金鑰，以保護資料。
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 可協助您在已定義的虛擬網路中啟動 AWS 資源。這個虛擬網路類似於您在自己的資料中心內操作的傳統網路，具有使用可擴展的 AWS 基礎設施的優勢。

**其他工具**
+ [HashiCorp Terraform](https://www.terraform.io/docs) 是一種命令列界面應用程式，可協助您使用程式碼來佈建和管理雲端基礎設施和資源。
+ [Ansible](https://www.ansible.com/) 是一種開放原始碼組態即程式碼 (CaC) 工具，可協助自動化應用程式、組態和 IT 基礎設施。
+ [Jenkins](https://www.jenkins.io/) 是一種開放原始碼自動化伺服器，可讓開發人員建置、測試和部署其軟體。

**Code**

此模式的程式碼可在 GitHub [aws-install-sap-with-jenkins-ansible](https://github.com/aws-samples/aws-install-sap-with-jenkins-ansible) 儲存庫中使用。

## 史詩
<a name="install-sap-systems-automatically-by-using-open-source-tools-epics"></a>

### 設定先決條件
<a name="configure-the-prerequisites"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 將您的 SAP 媒體檔案新增至 Amazon S3 儲存貯體。 | [建立包含所有 SAP 媒體檔案的 Amazon S3 儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)體。請務必遵循啟動精靈文件中適用於 **S/4HANA** 的 AWS Launch Wizard 資料夾階層。 [https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-sap-software-install-details.html](https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-sap-software-install-details.html) | 雲端管理員 | 
| 安裝 VirtualBox。 | 安裝和設定 [VirtualBox](https://www.virtualbox.org/) by Oracle。 | DevOps 工程師 | 
| 安裝 Vagrant。 | 安裝和設定 HashiCorp 的 [Vagrant](https://www.vagrantup.com/)。 | DevOps 工程師 | 
| 設定您的 AWS 帳戶。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/install-sap-systems-automatically-by-using-open-source-tools.html) | 一般 AWS | 

### 建置並執行 SAP 安裝
<a name="build-and-run-your-sap-installation"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 從 GitHub 複製程式碼儲存庫。 | 在 GitHub 上複製 [aws-install-sap-with-jenkins-ansible](https://github.com/aws-samples/aws-install-sap-with-jenkins-ansible) 儲存庫。 | DevOps 工程師 | 
| 啟動 Jenkins 服務。 | 開啟 Linux 終端機。然後，導覽至包含複製程式碼儲存庫資料夾的本機資料夾，並執行下列命令：<pre>sudo vagrant up</pre>Jenkins 啟動大約需要 20 分鐘。命令會傳回**服務啟動，並在成功時執行**訊息。 | DevOps 工程師 | 
| 在 Web 瀏覽器中開啟 Jenkins 並登入。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/install-sap-systems-automatically-by-using-open-source-tools.html) | DevOps 工程師 | 
| 設定 SAP 系統安裝參數。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/install-sap-systems-automatically-by-using-open-source-tools.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/install-sap-systems-automatically-by-using-open-source-tools.html)您可以根據您的使用案例，視需要設定其他非必要參數。例如，您可以變更執行個體的 SAP 系統 ID (SID)、預設密碼、名稱和 SAP 系統標籤。所有必要的變數名稱開頭都有 **（必要）**。 | AWS 系統管理員、DevOps 工程師 | 
| 執行 SAP 系統安裝。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/install-sap-systems-automatically-by-using-open-source-tools.html)如需管道步驟的資訊，請參閱 AWS 部落格上的了解[使用開放原始碼工具自動化 SAP 安裝](https://aws.amazon.com/blogs/awsforsap/automating-sap-installation-with-open-source-tools/)的**管道步驟**一節。如果發生錯誤，請將游標移到出現的紅色錯誤方塊，然後選擇**日誌**。出現發生錯誤之管道步驟的日誌。大多數錯誤是因為參數設定不正確而發生。 | DevOps 工程師、AWS 系統管理員 | 

## 相關資源
<a name="install-sap-systems-automatically-by-using-open-source-tools-resources"></a>
+ [DevOps for SAP – SAP 安裝：從 2 個月到 2 小時](https://videos.itrevolution.com/watch/707351918/) (DevOps Enterprise Summit Video Library)