SAP 바스티온 서버 배포 - SAP 미디어 스토리지 리포지토리
이 항목에서는 Red Hat Enterprise Linux 8.4 에서 SAP 바스티온 및 스토리지 설정의 자동 배포를 수행하는 방법에 대해 설명합니다. 안전한 원격 SSH 액세스가 가능한 바스티온 호스트가 있는 IBM Cloud 가상 프라이빗 클라우드(VPC)를 배포하는 방법을 보여 줍니다. SAP Terraform 및 Ansible 배치에서 배스천 호스트는 다른 서버 및 애플리케이션에 대한 외부 관리 액세스를 제공하는 데 사용됩니다. 배스천 서버는 유동 IP를 통해 액세스됩니다. 배스천 서버에는 전용 SAP/DBs 및 VSI의 IP 및 포트에서 동일한 지역 영역에 대한 액세스를 가능하게 하는 사용자 정의 가능한 보안 그룹 및 서브넷이 포함됩니다. 또한, 부동 IP는 인터넷에 대한 배스천 호스트 액세스를 허용하므로 sap 및 DB 킷을 다운로드할 수 있습니다. 또한 전용 클라이언트-사이트 간 VPN 솔루션이 자동으로 생성되어 OpenVPN 소프트웨어 클라이언트를 사용하여 향후 SAP 서버의 비공개 IP 주소에 직접 액세스할 수 있습니다.
IBM Cloud VPC에 배포할 SAP 자동화된 솔루션을 결정하기 전에 바스티온 서버 자동화된 배포를 실행하세요. SAP 킷을 다운로드하여 저장하는 데 필요한 전용 스토리지의 양을 지정해야 합니다. SAP 키트는 IBM Cloud VPC 자동화된 SAP 솔루션 풀에서 원하는 SAP 솔루션을 배포하는 데 사용됩니다. IBM Cloud 의 바스티온 서버는 주로 SAP 솔루션 배포에 사용됩니다. 예를 들어, 해당 IBM Cloud VPC 리전 내의 모든 SAP 솔루션을 유지 관리하기 위해 점프 호스트로 사용할 수 있습니다.
각 고객에게는 다음을 포함하여 SAP에 대한 계약 세부사항을 반영하는 SAP S-사용자가 제공됩니다.
- SAP 지원
- SAP 노트
- 시스템 유지보수
- SAP 및 DB 라이센스 생성 및 유지보수
- 마이그레이션 키
SAP 런치패드 지원에서 필요한 SAP 키트를 다운로드하여 준비하여 전용 및 맞춤형 스토리지에 저장하는 것은 고객의 책임입니다. Ansible이 호출되면 자동화된 배치 중에 SAP 킷이 사용됩니다.
구현 솔루션
Bastion 서버는 Schematics 에서 실행하는 Terraform remote-exec 및 Ansible 플레이북을 사용하여 원격 소프트웨어 설치에 사용됩니다.
Terraform 모듈은 배스천 호스트 구성에 대해서만 우수 사례의 '합리적인' 세트를 구현합니다. 사용자의 조직에는 배치 전에 적용해야 하는 추가 요구사항이 있을 수 있습니다.
이 파일은 다음을 포함합니다.
- 기본 및 사용자 지정 규칙이 있는 VPC, 서브넷, 보안 그룹, 볼륨이 있는 VSI, Secrets Manager 서비스 인스턴스 및 VPN 클라이언트-사이트 간 솔루션을 배포하기 위한 Terraform 스크립트입니다.
- SAP BASTION&STORAGE VSI 및 기타 SAP 솔루션에 대한 전제조건을 설치하기 위한 Bash 스크립트.
VPC 구성
보안 규칙은 다음과 같습니다.
- 보안 그룹의 모든 트래픽 허용
- 모든 아웃바운드 트래픽 허용
- 인바운드 DNS 트래픽 허용(UDP 포트 53)
- 인바운드 SSH 트래픽 허용(TCP 포트 22)
- 사용자 정의 포트 또는 포트 범위가 있는 인바운드 TCP 트래픽을 허용하는 옵션입니다.
VSI 구성
VSI는 Red Hat Enterprise Linux 8.4(amd64)로 구성되며 루트 사용자가 액세스하도록 구성된 최소 두 개의 SSH 키와 하나의 스토리지 볼륨이 있습니다.
VPN 구성
VPN 솔루션의 경우 Secrets Manager 인스턴스가 프로비저닝됩니다. 서버 인증서와 클라이언트 인증서라는 두 가지 비밀이 프로비저닝되며, 이 두 가지 비밀은 VPN 생성 중에도 사용되며 연결을 위한 ovpn
파일을 생성하는 데도 사용됩니다. 이러한 비밀번호는 비밀번호 관리자 페이지 > 비밀번호에서 비밀번호 보기 옵션을 선택하면 확인할 수 있습니다.
VPN 서버에는 전용 보안 그룹이 있습니다. 보안 그룹은 모든 소스 IP 주소에 대해 UDP 포트 443을 열게 됩니다. 이는 나중에 고객의 필요에 따라 사용자 지정할 수 있습니다.
VPN의 보안 그룹의 모든 트래픽을 허용하도록 바스티온의 보안 그룹에 대한 규칙이 추가됩니다. 나중에 다른 보안 그룹이 VPC에 추가되고 VPN 연결을 통해 연결된 리소스에 대한 액세스를 허용하려는 경우 해당 보안 그룹에 대해서도 동일한 규칙을 구성해야 합니다.
자동화 스크립트는 바스티온 서버에서 OpenVPN 클라이언트를 위한 ovpn 프로필 파일을 생성합니다. 바스티온에서 다운로드하여 OpenVPN 클라이언트로 가져와야 합니다.
소프트웨어 구성
- Terraform - HashiCorp 에서 만든 오픈 소스 인프라스트럭처로서의 코드 소프트웨어 도구.
- Ansible - 오픈 소스 소프트웨어 프로비저닝 및 구성 관리 도구입니다.
- IBM Cloud 명령행 인터페이스는 IBM Cloud에 있는 리소스를 관리하는 명령을 제공합니다.
기본 입력 변수
매개변수 | 설명 |
---|---|
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 | 새 포트가 생성된 경우에만 'yes' 또는 'no'를 사용하여 새 포트를 생성합니다. |
OPEN_PORT_MINIMUM(필수, 정수) | 최소 값을 포함하는 TCP 포트 범위. 올바른 값은 1 - 65535입니다. |
OPEN_PORT_MAXIMUM (필수, 정수) | 최대 값을 포함하는 TCP 포트 범위입니다. 올바른 값은 1 - 65535입니다. |
VPC | VPC의 이름. IBM Cloud 콘솔 가상 사설 클라우드 페이지에서 사용 가능한 VPC 목록을 확인하세요. |
SUBNET | 서브네트의 이름입니다. 사용 가능한 서브넷 목록은 IBM Cloud 콘솔 서브넷 페이지에서 확인하세요. |
SECURITYGROUP | 보안 그룹의 이름입니다. 사용 가능한 보안 그룹 목록은 IBM Cloud 콘솔의 VPC용 보안 그룹 페이지에서 확인할 수 있습니다. |
호스트 이름 | VSI에 대한 호스트 이름입니다. 호스트 이름은 최대 13자여야 합니다. |
프로파일 | VSI에 사용되는 프로파일입니다. 프로파일에 대한 자세한 정보는 인스턴스 프로파일을 참조하십시오. 기본값: "bx2-2x8". |
이미지 | VSI에 사용되는 OS 이미지입니다. 사용 가능한 이미지에 대한 자세한 정보는 가상 서버 이미지를 참조하십시오. 기본값: ibm-redhat-8-4-minimal-amd64-1. |
SSH_KEYS | VSI에 root 로 SSH를 허용하는 SSH 키 ID 목록입니다. 여기에는 하나 이상의 ID가 포함될 수 있습니다. IBM Cloud VPC용 콘솔 SSH 키 페이지에서 사용 가능한 SSH 키 목록을 확인하세요. 샘플 입력( IBM Cloud 에서 자신의 SSH ID 사용)
[" r010-57bfc315-f9e5-46bf-bf61-d87a24a9ce7a ", " r010-3fcd9fe7-d4a7-41ce-8bb3-d96e936b2c7e "] |
VOL1 [숫자] | SAP 배치 킷의 스토리지로 BASTION VSI에 첨부할 디스크의 크기(GB)입니다. 새 볼륨의 마운트 포인트는 "/storage"입니다. 기본값: 100GB. |
VPN_CREATE | VPN 솔루션을 배스티온 설정에 추가할지 여부를 지정합니다. '예'를 선택하면 VPN 솔루션이 자동으로 배포되어 VPC의 개인 IP 주소 공간에 액세스할 수 있습니다. |
VPN_PREFIX | VPN 관련 요소에 사용할 접두사입니다. 이 변수 아래에 설정된 접두사는 생성된 Secrets Manager 인스턴스에 추가되며, VPN의 보안 그룹의 접두사로도 사용되며, 생성된 VPN 서버의 이름으로 사용됩니다. |
VPN_네트워크_포트_프로토콜 | VPN 솔루션에 사용할 프로토콜입니다. ('tcp' 또는 'udp' 중 하나여야 합니다.) |
VPN_네트워크_포트_번호 | 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 공간입니다. 로컬 네트워크와 충돌이 있는 경우에만 이 설정을 변경해야 합니다. |
파괴_바스티온_서버_vsi | 초기 배포의 경우 false로 설정된 상태로 유지해야 합니다. 초기 배포 후, 배포 서버(바스티온 서버) VSI는 삭제하되 나머지 클라우드 리소스(VPC, 서브넷, 보안 그룹, VPN 솔루션)는 보존하려는 경우 Schematics 에서 값을 true로 설정한 다음 "계획 적용" 버튼을 눌러 변경 사항을 적용해야 합니다. |
중요한* - 변수 값이 저장된 후에는 작업공간 세부사항에 표시되지 않습니다. "중요한"으로 표시된 모든 필드의 설정 페이지에서 중요한을 선택하십시오.
VOL1 [숫자] 변수는 자동화된 SAP 배치를 실행하기 전에 다운로드한 SAP 킷을 저장하는 데 필요한 스토리지의 정의된 고객 크기를 나타냅니다. 배스천 SAP VPC 및 VSI를 배치할 때 스토리지 크기를 사용자 정의할 수 있습니다. 할당되는 기본 저장 용량은 100GB입니다.
시작하기 전에
-
이 절차를 완료하려면 IBM Cloud VPC 및 VSI에 대한 일반적인 이해가 필요합니다. IBM Cloud Schematics 에서 예제를 실행하려면 IBM Cloud 계정이 필요합니다. 배치된 자원은 청구 가능합니다.
-
IBM Cloud API 키를 작성 또는 검색하십시오. API 키는 IBM Cloud 플랫폼으로 인증하고 IBM Cloud 서비스에 대한 권한을 결정하는 데 사용됩니다.
-
VPC 인프라를 만들고 작업하는 데 필요한 IBM Cloud IAM 권한이 있는지, 작업 공간을 만들고 리소스를 배포할 수 있는 올바른 권한이 할당되었는지 확인하세요.
-
ssh 키를 생성하십시오. 배스천 호스트를 통해 프로비저닝된 VPC 가상 서버 인스턴스에 액세스하려면 SSH 키가 필요합니다. SSH 키를 생성한 후에는 배스천 서버를 배포할 VPC 지역 및 리소스 그룹의 IBM Cloud 계정에 이 SSH 키를 업로드 해야 합니다.
-
Terraform 및 IBM Schematics를 통해 BASTION 및 STORAGE 설정 배치를 사용하는 SAP용 자동화 스크립트 솔루션에 사용되는 URL에 액세스할 수 있는지 확인하십시오.
-
VPN 서버와 IBM Cloud Secrets Manager 대한 IAM 서비스 간 권한 부여를 생성합니다. 이렇게 하면 클라이언트-사이트 간 VPN 서비스가 Secrets Manager 인스턴스에서 생성된 비밀에 액세스하여 사용할 수 있습니다.
프로시저
- IBM Cloud 메뉴에서 Schematics.
- 작업 공간 만들기를 클릭합니다.
- 템플리트 지정 페이지에서 다음을 수행하십시오.
- 배스천 설정 폴더의 URL을 입력하십시오.
- Terraform 버전을 선택하십시오.
- 다음을 클릭하십시오.
- 작업공간 세부사항 페이지에서 다음을 수행하십시오.
- 작업 공간의 이름을 입력하십시오.
- 리소스 그룹을 선택하십시오.
- 작업공간에 대한 위치를 선택하십시오. 작업공간 위치가 자원 위치와 일치하지 않아도 됩니다.
- 다음을 선택합니다.
- 작성을 선택하여 작업공간을 작성하십시오.
- 작업공간 설정 페이지의 입력 변수 섹션에서 기본 입력 변수를 검토하고 솔루션과 일치하는 값을 제공하십시오.
- API 키
- 로컬 시스템의 비공개 SSH 키입니다.
- 생성하고 업로드한 SSH 키의 ID입니다 IBM Cloud
- 자원을 위한 지역
- 자원을 위한 영역
- 기존의 VPC를 사용할지 또는 하나의 VPC를 만들 것인지 여부
- 기존 서브넷 사용 여부
- 새 서브넷이 작성될 때만 새 포트를 작성할지 여부
- TCP 포트 범위, 최소 및 최대
- VPC 이름
- 서브네트 이름
- 보안 그룹 이름
- 호스트 이름
- 프로파일
- 이미지
- 최소 권장 디스크 크기입니다.
- 변경사항 저장을 클릭하십시오.
- 작업공간 설정 페이지에서 계획 생성을 클릭하십시오. 플랜이 완료될 때까지 기다리십시오.
- 로그 보기를 클릭하여 Terraform 실행 플랜의 로그 파일을 검토하십시오.
- 플랜 적용을 클릭하여 Terraform 템플리트를 적용하십시오.
- 로그 파일을 검토하여 프로비저닝, 수정 또는 삭제 프로세스 중에 오류가 발생하지 않았는지 확인합니다.
- 로그의 마지막에는 다양한 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"
- OpenVPN 클라이언트 프로필 파일은 출력에 표시된
OVPN_FILE
경로 아래의 바스티온 서버에 있습니다. 파일을 복사하여 필요한 사용자와 공유합니다. OpenVPN 클라이언트에서 이 파일을 가져옵니다. OpenVPN 클라이언트가 연결되면 바스티온 서버의 프라이빗 IP 주소 지정 공간에 접속할 수 있습니다.
이 자동화는 무료로 제공되지만 프로비저닝된 인프라는 유료로 제공됩니다.