SAP 자동화 프레임워크의 워크로드 영역 배포

SAP 애플리케이션에는 일반적으로 여러 개발 계층이 있습니다. 예를 들어 개발, 품질 보증 및 프로덕션 계층이 있을 수 있습니다. SAP 배포 자동화 프레임워크에서는 이러한 계층을 워크로드 영역이라고 합니다.

여러 Azure 지역에서 워크로드 영역을 사용할 수 있습니다. 그런 다음 각 워크로드 영역에는 Azure Virtual Network의 자체 인스턴스가 있습니다.

SAP 워크로드 영역에서 제공하는 서비스는 다음과 같습니다.

  • 서브넷 및 네트워크 보안 그룹을 포함한 가상 네트워크
  • 시스템 자격 증명에 대한 Azure Key Vault 인스턴스
  • 부팅 진단 대한 Azure Storage 계정
  • 클라우드 감시자를 위한 Storage 계정
  • Azure NetApp Files 계정 및 용량 풀(선택 사항)
  • Azure Files NFS 공유(선택 사항)
  • SAP 용 Azure Monitor(선택 사항)

Diagram that shows an SAP workload zone.

워크로드 영역은 일반적으로 허브 및 스포크 아키텍처의 스포크에 배포됩니다. 자체 구독에 있을 수 있습니다.

프라이빗 DNS는 컨트롤 플레인 또는 구성 가능한 원본에서 지원됩니다.

핵심 구성

다음 예제 매개 변수 파일은 필수 매개 변수만 보여 줍니다.

# The environment value is a mandatory field, it is used for partitioning the environments, for example (PROD and NP)
environment="DEV"

# The location value is a mandatory field, it is used to control where the resources are deployed
location="westeurope"

# The network logical name is mandatory - it is used in the naming convention and should map to the workload virtual network logical name
network_name="SAP01"

# network_address_space is a mandatory parameter when an existing virtual network is not used
network_address_space="10.110.0.0/16"

# admin_subnet_address_prefix is a mandatory parameter if the subnets are not defined in the workload or if existing subnets are not used
admin_subnet_address_prefix="10.110.0.0/19"

# db_subnet_address_prefix is a mandatory parameter if the subnets are not defined in the workload or if existing subnets are not used
db_subnet_address_prefix="10.110.96.0/19"

# app_subnet_address_prefix is a mandatory parameter if the subnets are not defined in the workload or if existing subnets are not used
app_subnet_address_prefix="10.110.32.0/19"

# The automation_username defines the user account used by the automation
automation_username="azureadm"

워크로드 영역 배포 자격 증명 준비

SAP Deployment Automation Framework는 배포를 수행할 때 서비스 주체를 사용합니다. 워크로드 영역 배포에 대한 서비스 주체를 만들려면 권한이 있는 계정을 사용하여 서비스 주체를 만듭니다.

az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscriptionID>" --name="<environment>-Deployment-Account"

Important

서비스 주체의 이름은 고유해야 합니다.

명령의 출력 값을 기록합니다.

  • appId
  • password
  • 테넌트

서비스 주체에 올바른 권한을 할당합니다.

az role assignment create --assignee <appId> \
    --scope /subscriptions/<subscriptionID> \
    --role "User Access Administrator"

SAP 워크로드 영역 배포

샘플 워크로드 영역 구성 파일 DEV-WEEU-SAP01-INFRASTRUCTURE.tfvars 은 폴더에 ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/LANDSCAPE/DEV-WEEU-SAP01-INFRASTRUCTURE 있습니다.

다음 명령을 실행하여 SAP 워크로드 영역을 배포합니다.

배포자에서 이 작업을 수행합니다.

샘플 구성 파일을 복사하여 배포 자동화 프레임워크 테스트를 시작할 수 있습니다.

cd ~/Azure_SAP_Automated_Deployment

cp -R sap-automation/samples/WORKSPACES config


export  ARM_SUBSCRIPTION_ID="<subscriptionId>"
export        ARM_CLIENT_ID="<appId>"
export    ARM_CLIENT_SECRET="<password>"
export        ARM_TENANT_ID="<tenantId>"
export             env_code="DEV"
export          region_code="<region_code>"
export            vnet_code="SAP02"
export deployer_environment="MGMT"


export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/config/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/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE"
parameterFile="${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars"

$SAP_AUTOMATION_REPO_PATH/deploy/scripts/install_workloadzone.sh   \
    --parameterfile "${parameterFile}"                             \
    --deployer_environment "${deployer_environment}"               \ 
    --subscription "${ARM_SUBSCRIPTION_ID}"                        \
    --spn_id "${ARM_CLIENT_ID}"                                    \
    --spn_secret "${ARM_CLIENT_SECRET}"                            \
    --tenant_id "${ARM_TENANT_ID}"
    

스크립트가 실행되지 않으면 스크립트를 다시 실행하기 전에 디렉터리를 제거 ~/.sap_deployment_automation/~/.terraform.d/ 하여 로컬 캐시 파일을 지우는 데 도움이 될 수 있습니다.

다음 단계