Начало работы с SAP Deployment Automation Framework
Быстро приступить к работе с SAP Deployment Automation Framework.
Необходимые компоненты
Чтобы приступить к работе с SAP Deployment Automation Framework, вам потребуется:
- Подписка Azure. Если у вас еще нет подписки Azure, вы можете создать бесплатную учетную запись.
- Учетная запись пользователя SAP с разрешениями на скачивание программного обеспечения SAP в среде Azure. Дополнительные сведения о S-User см. в разделе SAP S-User.
- Установка Azure CLI .
- Назначенный пользователем идентификатор (MS) или субъект-служба, используемый для развертывания плоскости управления.
- Назначенное пользователем удостоверение (MS) или субъект-служба для развертывания зоны рабочей нагрузки.
- Возможность создать проект Azure DevOps, если вы хотите использовать Azure DevOps для развертывания.
Некоторые предварительные требования уже могут быть установлены в среде развертывания. Как Azure Cloud Shell, так и средство развертывания входят в Terraform и установлен Azure CLI.
Создание субъекта-службы
Платформа автоматизации развертывания SAP использует субъекты-службы для развертывания.
При выборе имени субъекта-службы убедитесь, что имя уникально в клиенте Azure. Не забудьте использовать учетную запись с разрешениями на создание субъектов-служб при выполнении скрипта.
Создайте субъект-службу с разрешениями участника.
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export control_plane_env_code="LAB" az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/$ARM_SUBSCRIPTION_ID" --name="$control_plane_env_code-Deployment-Account"
Просмотрите выходные данные. Например:
{ "appId": "<AppId>", "displayName": "<environment>-Deployment-Account ", "name": "<AppId>", "password": "<AppSecret>", "tenant": "<TenantId>" }
Скопируйте выходные данные. Обязательно сохраните значения для
appId
,password
иTenant
.Выходные данные сопоставляются со следующими параметрами. Эти параметры используются в последующих шагах с командами автоматизации.
Имя входных данных параметра Имя вывода spn_id
appId
spn_secret
password
tenant_id
tenant
При необходимости назначьте роль пользователя Администратор istrator субъекту-службе.
export appId="<appId>" az role assignment create --assignee $appId --role "User Access Administrator" --scope /subscriptions/$ARM_SUBSCRIPTION_ID
Внимание
Если роль пользователя Администратор istrator не назначена субъекту-службе, вы не можете назначить разрешения с помощью платформы автоматизации.
Создание назначаемого пользователем удостоверения
Платформа развертывания автоматизации SAP также может использовать назначенное пользователем удостоверение (MSI) для развертывания. Обязательно используйте учетную запись с разрешениями на создание управляемых удостоверений при запуске скрипта, создающего удостоверение.
Создайте управляемое удостоверение.
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export control_plane_env_code="LAB" az identity create --name ${control_plane_env_code}-Deployment-Identity --resource-group <ExistingResourceGroup>
Просмотрите выходные данные. Например:
{ "clientId": "<appId>", "id": "<armId>", "location": "<location>", "name": "${control_plane_env_code}-Deployment-Identity", "principalId": "<objectId>", "resourceGroup": "<ExistingResourceGroup>", "systemData": null, "tags": {}, "tenantId": "<TenantId>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Скопируйте выходные данные.
Выходные данные сопоставляются со следующими параметрами. Эти параметры используются в последующих шагах с командами автоматизации.
Имя входных данных параметра Имя вывода app_id
appId
msi_id
armId
Назначьте роль участника удостоверению.
export appId="<appId>" az role assignment create --assignee $appId --role "Contributor" --scope /subscriptions/$ARM_SUBSCRIPTION_ID
При необходимости назначьте роль Администратор istrator пользователю для удостоверения.
export appId="<appId>" az role assignment create --assignee $appId --role "User Access Administrator" --scope /subscriptions/$ARM_SUBSCRIPTION_ID
Внимание
Если роль Администратор istrator пользователя не назначается управляемому удостоверению, вы не можете назначить разрешения с помощью платформы автоматизации.
Предварительные проверки
Для выполнения предварительных проверка можно использовать следующий скрипт. Скрипт выполняет следующие проверка и тесты:
- Проверяет, имеет ли субъект-служба правильные разрешения для создания ресурсов в подписке.
- Проверяет, есть ли у субъекта-службы разрешения пользователя Access Администратор istrator.
- Создайте виртуальная сеть Azure.
- Создайте Azure Virtual Key Vault с частной конечной точкой.
- Создайте общую папку NSF Файлы Azure.
- Создайте виртуальную машину Azure с диском данных с помощью хранилище класса Premium версии 2.
- Проверьте доступ к необходимым URL-адресам с помощью развернутой виртуальной машины.
$sdaf_path = Get-Location
if ( $PSVersionTable.Platform -eq "Unix") {
if ( -Not (Test-Path "SDAF") ) {
$sdaf_path = New-Item -Path "SDAF" -Type Directory
}
}
else {
$sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
if ( -not (Test-Path $sdaf_path)) {
New-Item -Path $sdaf_path -Type Directory
}
}
Set-Location -Path $sdaf_path
git clone https://github.com/Azure/sap-automation.git
cd sap-automation
cd deploy
cd scripts
if ( $PSVersionTable.Platform -eq "Unix") {
./Test-SDAFReadiness.ps1
}
else {
.\Test-SDAFReadiness.ps1
}
Использование платформы автоматизации развертывания SAP в службах Azure DevOps Services
Использование Azure DevOps упрощает процесс развертывания. Azure DevOps предоставляет конвейеры, которые можно запустить для развертывания инфраструктуры и действий по настройке и установке SAP.
Azure Repos можно использовать для хранения файлов конфигурации. Azure Pipelines предоставляет конвейеры, которые можно использовать для развертывания и настройки инфраструктуры и приложения SAP.
Регистрация в службах Azure DevOps Services
Чтобы использовать Azure DevOps Services, требуется организация Azure DevOps. Организация используется для подключения групп связанных проектов. Используйте рабочую или учебную учетную запись для автоматического подключения организации к идентификатору Microsoft Entra. Чтобы создать учетную запись, откройте Azure DevOps и войдите или создайте новую учетную запись.
Создание среды sap Deployment Automation Framework с помощью Azure DevOps
Чтобы выполнить базовую установку Azure DevOps Services для платформы автоматизации развертывания SAP, можно использовать следующий скрипт.
Откройте среду сценариев PowerShell и скопируйте следующий скрипт и обновите параметры, соответствующие вашей среде.
$Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
$Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
$Env:SDAF_CONTROL_PLANE_CODE = "MGMT"
$Env:SDAF_WORKLOAD_ZONE_CODE = "DEV"
$Env:SDAF_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
$Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
$UniqueIdentifier = Read-Host "Please provide an identifier that makes the service principal names unique, for instance a project code"
$confirmation = Read-Host "Do you want to create a new Application registration (needed for the Web Application) y/n?"
if ($confirmation -eq 'y') {
$Env:SDAF_APP_NAME = $UniqueIdentifier + " SDAF Control Plane"
}
else {
$Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
}
$confirmation = Read-Host "Do you want to create a new Service Principal for the Control plane y/n?"
if ($confirmation -eq 'y') {
$Env:SDAF_MGMT_SPN_NAME = $UniqueIdentifier + " SDAF " + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
}
else {
$Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane Service Principal Name"
}
$confirmation = Read-Host "Do you want to create a new Service Principal for the Workload zone y/n?"
if ($confirmation -eq 'y') {
$Env:SDAF_WorkloadZone_SPN_NAME = $UniqueIdentifier + " SDAF " + $Env:SDAF_WORKLOAD_ZONE_CODE + " SPN"
}
else {
$Env:SDAF_WorkloadZone_SPN_NAME = Read-Host "Please provide the Workload Zone Service Principal Name"
}
if ( $PSVersionTable.Platform -eq "Unix") {
if ( Test-Path "SDAF") {
}
else {
$sdaf_path = New-Item -Path "SDAF" -Type Directory
}
}
else {
$sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
if ( Test-Path $sdaf_path) {
}
else {
New-Item -Path $sdaf_path -Type Directory
}
}
Set-Location -Path $sdaf_path
if ( Test-Path "New-SDAFDevopsProject.ps1") {
remove-item .\New-SDAFDevopsProject.ps1
}
Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile .\New-SDAFDevopsProject.ps1 ; .\New-SDAFDevopsProject.ps1
Запустите скрипт и следуйте инструкциям. Скрипт открывает окна браузера для проверки подлинности и выполнения задач в проекте Azure DevOps.
Вы можете запустить код непосредственно из GitHub или импортировать копию кода в проект Azure DevOps.
Чтобы убедиться, что проект создан, перейдите на портал Azure DevOps и выберите проект. Убедитесь, что репозиторий заполнен и созданы конвейеры.
Внимание
Выполните следующие действия на локальной рабочей станции. Кроме того, убедитесь, что у вас установлена последняя версия Azure CLI, выполнив az upgrade
команду.
Дополнительные сведения о настройке Azure DevOps для SAP Deployment Automation Framework см. в статье "Настройка Azure DevOps для платформы автоматизации развертывания SAP".
Создание среды службы автоматизации развертывания SAP без Azure DevOps
Платформу автоматизации развертывания SAP можно запустить из виртуальной машины в Azure. Ниже описано, как создать среду.
Внимание
Убедитесь, что виртуальная машина использует удостоверение, назначаемое системой или назначаемое пользователем, с разрешениями на подписку для создания ресурсов.
Убедитесь, что виртуальная машина установлена следующими предварительными условиями:
- git
- jq
- unzip
- virtualenv (при запуске в Ubuntu)
Предварительные требования можно установить на виртуальной машине Ubuntu с помощью следующей команды:
sudo apt-get install -y git jq unzip virtualenv
Затем можно установить компоненты развертывающего средства с помощью следующих команд:
wget https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/configure_deployer.sh -O configure_deployer.sh
chmod +x ./configure_deployer.sh
./configure_deployer.sh
# Source the new variables
. /etc/profile.d/deploy_server.sh
Примеры
Папка ~/Azure_SAP_Automated_Deployment/samples
содержит набор примеров файлов конфигурации для запуска тестирования платформы автоматизации развертывания. Их можно скопировать с помощью следующих команд:
cd ~/Azure_SAP_Automated_Deployment
cp -Rp samples/Terraform/WORKSPACES ~/Azure_SAP_Automated_Deployment