IBM Cloud Docs
部署 SAP bastion 伺服器 - SAP 媒體儲存倉庫

部署 SAP bastion 伺服器 - SAP 媒體儲存倉庫

本主題說明如何在 Red Hat Enterprise Linux 8.4 上自動部署 SAP bastion 和儲存設定。 它展示了如何部署具有安全遠端 SSH 存取功能的 bastion 主機的 IBM Cloud 虛擬私有雲 (VPC)。 在 SAP Terraform 和 Ansible 部署中,bastion 主機用於給予其他伺服器和應用程式的外部管理存取權。 透過浮動 IP 存取 bastion 伺服器。 bastion 伺服器包含可自訂的安全群組與子網路,以便存取其專用 SAP /DB 與 VSI 的 IP 與連接埠上的相同區域區塊。 浮動 IP 也允許 bastion 主機存取網際網路,以便下載 sap 和 DB 套件。 此外,還會自動建立專用的用戶端到站 VPN 解決方案,以便使用 OpenVPN 軟體用戶端直接存取未來 SAP 伺服器的私有 IP 位址。

在您決定要在 IBM Cloud VPC 部署哪個 SAP 自動解決方案之前,請執行 bastion 伺服器自動部署。 您需要指定下載和儲存 SAP 套件所需的專用儲存空間。 SAP 套件用於從 IBM Cloud VPC 自動化 SAP 解決方案池部署想要的 SAP 解決方案。 IBM Cloud 中的 bastion 伺服器主要用於 SAP 解決方案部署。 例如,它可用作跳躍主機,以維護和管理其各自 IBM Cloud VPC 區域內的所有 SAP 解決方案。

每位客戶都有一個 SAP S-使用者,反映他們與 SAP 的合約細節,包括:

  • SAP 支援
  • SAP Notes
  • 系統維護
  • 生成和維護 SAP 和 DB 許可證
  • 遷移鍵

客戶有責任從 SAP launchpad 支援下載和準備必要的 SAP 套件,並將其儲存於專用和可自訂的儲存空間。 在自動部署過程中,當呼叫 Ansible 時會使用 SAP 套件。

已執行的解決方案

Bastion 伺服器使用 Schematics 執行的 Terraform remote-exec 和 Ansible playbooks 進行遠端軟體安裝。

圖 1. 具有 3 個區域的 VPC 區域內的 Standard Bastion
具有 3 個區域的 VPC 區域內的 Standard Bastion

Terraform 模組僅針對 bastion 主機組態實施一套「合理」的最佳實踐。 您自己的組織可能有更多要求,您必須在部署前申請。

它包含:

  • Terraform 腳本用於部署 VPC、子網路、具有預設和自訂規則的安全群組、具有卷的 VSI、Secrets Manager 服務實例和 VPN 客戶端到站解決方案。
  • Bash 腳本可安裝 SAP BASTION&STORAGE VSI 及其他 SAP 解決方案的先決條件。

VPC 組態

安全規則為

  • 允許安全群組中的所有流量
  • 允許所有出站流量
  • 允許 DNS 入站流量 (UDP 埠 53)
  • 允許 SSH 入站流量 (TCP 埠 22)
  • 選項以允許使用自訂連接埠或一系列連接埠的入站 TCP 流量。

VSI 組態

VSI 配置為 Red Hat Enterprise Linux 8.4 ( amd64 ),最少有兩個 SSH 金鑰,配置為由 root 使用者存取,並有一個儲存磁碟區。

VPN 配置

對於 VPN 解決方案,將配置 Secrets Manager 實例。 伺服器證書和用戶端證書這兩個秘密會在建立 VPN 時使用,也會用於產生連線的 ovpn 檔案。 您可以在「機密管理器」頁面 >「機密」下查看這些機密,然後選擇 「查看機密」 選項。

VPN 伺服器將有專屬的安全群組。 安全群組會為所有來源 IP 位址開啟 UDP 埠 443。 之後可以根據客戶的需求進行客製化。

為堡垒的安全群組加入規則,允許來自 VPN 安全群組的所有流量。 之後,如果有其他安全群組新增至 VPC,且您要允許透過 VPN 連線存取其附加資源,則也應為這些安全群組設定相同的規則。

自動化腳本會在 bastion 伺服器上為 OpenVPN 用戶端產生一個 ovpn profile 檔案。 您需要從 bastion 下載,然後匯入 OpenVPN 客戶端。

軟體配置

  • Terraform - 一個開放原始碼的基礎架構即程式碼軟體工具,由 HashiCorp 建立。
  • Ansible- 一個開放原始碼軟體佈建與組態管理工具。
  • IBM Cloud 指令行介面提供在 IBM Cloud 中管理資源的指令。

Bastion 輸入變數

參數 說明
ibmcloud_api_key IBM Cloud API 金鑰 (敏感*值)。
private_ssh_key 本機系統的 id_rsa 私密金鑰內容 (敏感*值)。
區域 部署資源的雲端區域。 如需更多關於 VPC 的區域和區間的資訊,請參閱 位置。 檢視 IBM Cloud Schematics 中的支援位置,這些位置都列在 位置和端點 中。 樣本值:eu-de。
ZONE 部署解決方案的雲端區域。 樣本值:eu-de-2。
VPC_EXISTS 指定所選的 VPC 是否存在(輸入「是」或「否」)。 如果選擇「否」,則會建立 VPC。
SUBNET_EXISTS 指定所選 SUBNET/SECURITYGROUP 是否存在(使用「是」或「否」)。 如果選擇「否」,則會在指定的 VPC 中建立具有 OPEN PORTS 的 SUBNET/SECURITYGROUP。
add_open_ports_in_new_subnet 僅在建立新 SUBNET 時才建立新連接埠,請使用「是」或「否」。
OPEN_PORT_MINIMUM (需要,整數) 包含最小值的 TCP 連接埠範圍。 有效值為 1 - 65535。
OPEN_PORT_MAXIMUM (需要,整數) 包含最大值的 TCP 連接埠範圍。 有效值為 1 - 65535。
VPC VPC 的名稱。 在 IBM Cloud Console 虛擬私有雲頁面上檢視可用的 VPC 清單。
子網路 子網路的名稱。 在 IBM Cloud Console Subnets 頁面檢視可用的子網路清單。
安全群組 安全群組的名稱。 在 IBM Cloud 控制台 VPC 安全性群組頁面上查看可用安全性群組清單。
主機名稱 VSI 的主機名稱。 主機名稱最多必須有 13 個字元。
設定檔 用於 VSI 的設定檔。 有關設定檔的詳細資訊,請參閱 實體設定檔。 預設值:" bx2-2x8 "。
IMAGE 用於 VSI 的作業系統映像。 如需可用映像的詳細資訊,請參閱 虛擬伺服器映像。 預設值:ibm-redhat-8-4-minimal-amd64-1。
ssh_keys 允許 SSH 以 root 的 SSH 金鑰 ID 清單。 這可以包含一個或多個 ID。 在 IBM Cloud Console SSH keys for VPC 頁面上檢視可用的 SSH 金鑰清單。 範例輸入(使用來自 IBM Cloud 的您自己的 SSH ID) [“r010-57bfc315-f9e5-46bf-bf61-d87a24a9ce7a”,“r010-3fcd9fe7-d4a7-41ce-8bb3-d96e936b2c7e”]
VOL1 [號碼] 連接至 BASTION VSI 作為 SAP 部署套件儲存空間的磁碟大小 (GB)。 新卷的掛載點是"/storage"。 預設值:100 GB。
VPN_CREATE 指定是否要將 VPN 解決方案加入 bastion 設定。 如果「是」,將自動為您部署 VPN 解決方案,讓您可以存取 VPC 的私人 IP 位址空間。
VPN_PREFIX VPN 相關元件要使用的前綴。 此變數下設定的前綴將加到所建立的 Secrets Manager 範例中,也會用作 VPN 安全群組的前綴,並會用作所建立 VPN 伺服器的名稱。
vpn_network_port_protocol VPN 解決方案要使用的通訊協定。(必須是 'tcp「或」udp')
vpn_network_port_number VPN 解決方案要使用的連接埠號。(必須介於 1 和 65535 之間)
SM_PLAN Secrets Manager 使用的定價方案,以方案 ID 提供。 試用版使用 869c191a-3c2a-4faf-98be-18d48f95ba1f,標準版使用 7713c3a8-3be8-4a9a-81bb-ee822fcaac3d。
vpn_client_ip_pool 指定 VPN 用戶端 IP 池空間 CIDR 的可選變 數。 這是與 VPN 連線的系統將會使用的 IP 空間。 只有在與本機網路發生衝突時,您才需要變更。
destroy_bastion_server_vsi 對於初始部署,應保持設定為 false。 初始部署後,如果希望銷毀部署伺服器 (Bastion 伺服器) VSI,但保留其他雲端資源 (VPC、子網路、安全群組和 VPN 解決方案),則必須在 Schematics 中將該值設定為 true,然後按「套用計劃」按鈕套用變更。

Sensitive*- 變數值儲存後,不會顯示在工作區詳細資料中。 確保所有標示「敏感」的欄位都在「設定」頁面上選擇「敏感」。

VOL1 [number 變數]表示在您執行自動 部署之前,儲存下載的 套件所需的已定義客戶儲存大小。SAP SAP 當您部署 bastion SAP VPC 和 VSI 時,可以自訂儲存大小。 預設分配的儲存空間為 100 GB。

開始之前

  1. 要完成此程序,您需要對 IBM Cloud VPC 和 VSI 有一般的瞭解。 若要執行 IBM Cloud Schematics 中的範例,您需要 IBM Cloud 帳戶。 已部署的資源是收費的。

  2. 建立或擷取 IBM Cloud API 金鑰。 API 金鑰用於驗證 IBM Cloud 平台,並決定您對 IBM Cloud 服務的權限。

  3. 請確定您擁有 所需的 IBM Cloud IAM 權限,以建立 VPC 基礎結構並使用 VPC 基礎結構,而且您已被 指派正確的權限來 建立工作區和部署資源。

  4. 產生 SSH 金鑰。 需要 SSH 金鑰才能透過 bastion 主機存取已佈建的 VPC 虛擬伺服器實體。 建立 SSH 金鑰後,請確保 將此 SSH 金鑰上傳到您想要部署堡壘伺服器的 VPC 區域和資源組中的 IBM Cloud 帳戶

  5. 確認您可以存取本解決方案所使用的 URL 透過 Terraform 使用 BASTION & STORAGE 設定部署的 SAP 解決方案的自動化腳本,以及 IBM Schematics。

  6. 為 VPN 伺服器建立 IAM 服務對服務授權及 IBM Cloud Secrets Manager。 這將允許用戶端到站 VPN 服務存取並使用在 Secrets Manager 範例下建立的機密。

程序

  1. 從 IBM Cloud 功能表中,選擇 Schematics.
  2. 按一下建立工作區。
  3. Specify template(指定範本 )頁面上:
    • 輸入 bastion setup 資料夾 URL。
    • 選擇 Terraform 版本
    • 按「下一步」。
  4. 在工作區詳細資料頁面上:
    • 輸入工作區的名稱。
    • 選取資源群組
    • 選取工作區的位置。 工作區位置不必與資源位置相符。
    • 選擇「下一步」。
  5. 選取建立來建立您的工作區。
  6. 在「工作區設定」頁面的「輸入變數」部分,檢視預設輸入變數,並提供符合您的解決方案的值:
    • 您的 API 金鑰
    • 您本機系統的私人 SSH 金鑰。
    • 您建立並上傳至以下網址的 SSH 金鑰 ID IBM Cloud
    • 您資源的區域
    • 您的資源專區
    • 是否使用現有的 VPC 或建立一個 VPC
    • 是否使用現有的子網路
    • 是否僅在建立新子網路時才建立新連接埠
    • TCP 連接埠範圍、最小值與最大值
    • VPC 名稱
    • 子網路名稱
    • 安全群組名稱
    • 主機名稱
    • 設定檔
    • 影像
    • 建議的最小磁碟大小。
    • 按一下「儲存變更」。
  7. 在工作區設定頁面上,按一下產生計劃。 等待計劃完成。
  8. 按一下檢閱日誌以檢閱 Terraform 執行計劃的日誌檔。
  9. 按一下套用計劃,套用您的 Terraform 模版。
  10. 檢閱記錄檔,以確保在佈建、修改或刪除過程中沒有發生錯誤。
  11. 在記錄的最後,是您部署不同 SAP 產品和資料庫所需的資訊。 複製並儲存此資訊,以便您進行部署。 例如:
2024/09/16 12:01:08 Terraform refresh | FLOATING_IP = " xxx.xxx.xxx.xxx "
2024/09/16 12:01:08 Terraform refresh | HOSTNAME = "myhost"
2024/09/16 12:01:08 Terraform refresh | OVPN_FILE = "/root/OpenVPN.ovpn"
2024/09/16 12:01:08 Terraform refresh | PRIVATE_IP = " xxx.xxx.xxx.xxx "
2024/09/16 12:01:08 Terraform refresh | REGION = "eu-de"
2024/09/16 12:01:08 Terraform refresh | SECURITY_GROUP = "secgrp-myhost "
2024/09/16 12:01:08 Terraform refresh | SUBNET = [
2024/09/16 12:01:08 Terraform refresh |   "myvpc-subnet-1",
2024/09/16 12:01:08 Terraform refresh |   "myvpc-subnet-2",
2024/09/16 12:01:08 Terraform refresh |   "myvpc-subnet-3",
2024/09/16 12:01:08 Terraform refresh | VPC = "myvpc"
2024/09/16 12:01:08 Terraform refresh | VPN_HOSTNAME = "xxxxxx.eu-der.vpn-server.appdomain.cloud"
  1. 您的 OpenVPN 用戶端設定檔檔案位於輸出中顯示的 OVPN_FILE 路徑下的 bastion 伺服器上。 複製檔案並與所需使用者共用。 在 OpenVPN 客戶端中匯入此檔案。 一旦 OpenVPN 用戶端連線,您就可以到達 bastion 伺服器的私有 IP 位址空間。

此自動化是免費提供的;但是,所提供的基礎架構是有成本的。