Usar a Estrutura de Automação de Implantação do SAP no Azure DevOps Services
O Azure DevOps simplifica o processo de implantação, fornecendo pipelines que você pode executar para executar a implantação da infraestrutura e as atividades de configuração e instalação do SAP.
Você pode usar o Azure Repos para armazenar seus arquivos de configuração e usar o Azure Pipelines para implantar e configurar a infraestrutura e o aplicativo SAP.
Inscreva-se para o Azure DevOps Services
Para usar os Serviços de DevOps do Azure, você precisa de uma organização de DevOps do Azure. Uma organização é usada para conectar grupos de projetos relacionados. Use sua conta corporativa ou de estudante para conectar automaticamente sua organização à sua ID do Microsoft Entra. Para criar uma conta, abra o Azure DevOps e entre ou crie uma nova conta.
Configurar o Azure DevOps Services para a estrutura de automação de implantação do SAP
Você pode usar o script a seguir para fazer uma instalação básica do Azure DevOps Services for SAP Deployment Automation Framework.
Abra o ISE do PowerShell, copie o script a seguir e atualize os parâmetros para corresponder ao seu ambiente.
$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_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
$Env:MSI_OBJECT_ID = $null
$branchName = "main"
$UniqueIdentifier = "SDAF" + $ShortCode
if ($Env:ARM_TENANT_ID.Length -eq 0) {
az login --output none --only-show-errors --scope https://graph.microsoft.com//.default
}
else {
az login --output none --tenant $Env:ARM_TENANT_ID --only-show-errors --scope https://graph.microsoft.com//.default
}
az config set extension.use_dynamic_install=yes_without_prompt --only-show-errors
az extension add --name azure-devops --only-show-errors
$differentTenant = Read-Host "Is your Azure DevOps organization hosted in a different tenant than the one you are currently logged in to? y/n"
if ($differentTenant -eq 'y') {
$env:AZURE_DEVOPS_EXT_PAT = Read-Host "Please enter your Personal Access Token (PAT) with permissions to add new projects, manage agent pools to the Azure DevOps organization $Env:ADO_Organization"
try {
az devops project list
}
catch {
$_
}
}
$confirmationWebAppDeployment = Read-Host "Do you want to use the Web Application for editing the configuration files (recommended) y/n?"
if ($confirmationWebAppDeployment -eq 'y') {
$Env:SDAF_WEBAPP = "true"
$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 = "SDAF " + $UniqueIdentifier + " SDAF Control Plane"
}
else {
$Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
}
}
else {
$Env:SDAF_WEBAPP = "false"
}
$Env:SDAF_AuthenticationMethod = 'Managed Identity'
$confirmationDeployment = Read-Host "Do you want to use Managed Identities for the deployment (recommended) y/n?"
if ($confirmationDeployment -eq 'n') {
$Env:SDAF_AuthenticationMethod = 'Service Principal'
$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 = "SDAF " + $UniqueIdentifier + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
}
else {
$Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane 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") {
if ( $PSVersionTable.Platform -eq "Unix") {
Remove-Item "New-SDAFDevopsProject.ps1"
}
else {
Remove-Item ".\New-SDAFDevopsProject.ps1"
}
}
Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile New-SDAFDevopsProject.ps1
if ( $PSVersionTable.Platform -eq "Unix") {
Unblock-File ./New-SDAFDevopsProject.ps1
./New-SDAFDevopsProject.ps1
}
else {
Unblock-File .\New-SDAFDevopsProject.ps1
.\New-SDAFDevopsProject.ps1
}
Execute o script e siga as instruções. O script abre janelas do navegador para autenticação e para executar tarefas no projeto Azure DevOps.
Você pode optar por executar o código diretamente do GitHub ou importar uma cópia do código para o projeto do Azure DevOps.
Para confirmar que o projeto foi criado, vá para o portal de DevOps do Azure e selecione o projeto. Verifique se o repositório foi preenchido e se os pipelines foram criados.
Importante
Execute as etapas a seguir em sua estação de trabalho local. Verifique também se você tem a CLI do Azure mais recente instalada executando o az upgrade
comando.
Configurar artefatos dos Serviços de DevOps do Azure para uma nova zona de carga de trabalho
Use o script a seguir para implantar os artefatos necessários para oferecer suporte a uma nova zona de carga de trabalho. Esse processo cria o grupo de variáveis e a conexão de serviço no Azure DevOps e, opcionalmente, a entidade de serviço de implantação.
Abra o ISE do PowerShell, copie o script a seguir e atualize os parâmetros para corresponder ao seu ambiente.
$Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
$Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
$Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
$Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
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
}
}
$branchName = "main"
Set-Location -Path $sdaf_path
if ( Test-Path "New-SDAFDevopsWorkloadZone.ps1") {
remove-item .\New-SDAFDevopsWorkloadZone.ps1
}
Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsWorkloadZone.ps1 -OutFile .\New-SDAFDevopsWorkloadZone.ps1 ; .\New-SDAFDevopsWorkloadZone.ps1
Criar uma configuração de plano de controle de exemplo
Você pode executar o pipeline para criar uma configuração de exemplo para o Create Sample Deployer Configuration
plano de controle. Quando estiver em execução, escolha a região apropriada do Azure. Você também pode controlar se quiser implantar Firewall do Azure e o Azure Bastion.
Configuração manual do Azure DevOps Services for SAP Deployment Automation Framework
Você pode configurar manualmente os Serviços de DevOps do Azure para o SAP Deployment Automation Framework.
Crie um novo projeto
Você pode usar o Azure Repos para armazenar o código do repositório GitHub de automação sap e os arquivos de configuração do ambiente.
Abra o Azure DevOps e crie um novo projeto selecionando Novo Projeto e inserindo os detalhes do projeto. O projeto contém o repositório de controle de origem do Azure Repos e o Azure Pipelines para executar atividades de implantação.
Se você não vir Novo Projeto, verifique se você tem permissões para criar novos projetos na organização.
Registre a URL do projeto.
Importar o repositório
Comece importando o repositório GitHub do SAP Deployment Automation Framework Bootstrap para o Azure Repos.
Vá para a seção Repositórios e selecione Importar um repositório. Importe o repositório para o https://github.com/Azure/sap-automation-bootstrap.git
Azure DevOps. Para obter mais informações, consulte Importar um repositório.
Se você não conseguir importar um repositório, poderá criá-lo manualmente. Em seguida, você pode importar o conteúdo do repositório GitHub Bootstrap do SAP Deployment Automation Framework para ele.
Criar o repositório para importação manual
Só execute esta etapa se não for possível importar o repositório diretamente.
Para criar o repositório de espaços de trabalho, na seção Repositórios , em Configurações do projeto, selecione Criar.
Escolha o repositório, insira Git e forneça um nome para o repositório. Por exemplo, use o SAP Configuration Repository.
Clonar o repositório
Para fornecer um recurso de edição mais abrangente do conteúdo, você pode clonar o repositório para uma pasta local e editar o conteúdo localmente.
Para clonar o repositório em uma pasta local, na seção Repositórios do portal, em Arquivos, selecione Clonar. Para obter mais informações, consulte Clonar um repositório.
Importar manualmente o conteúdo do repositório usando um clone local
Você também pode baixar manualmente o conteúdo do repositório do SAP Deployment Automation Framework e adicioná-lo ao clone local do repositório do Azure DevOps.
Vá para o https://github.com/Azure/SAP-automation-samples
repositório e faça download do conteúdo do repositório como um arquivo .zip. Selecione Código e escolha Baixar ZIP.
Copie o conteúdo do arquivo .zip para a pasta raiz do clone local.
Abra a pasta local no Visual Studio Code. Você deve ver que as alterações precisam ser sincronizadas pelo indicador pelo ícone de controle do código-fonte mostrado aqui.
Selecione o ícone de controle do código-fonte e forneça uma mensagem sobre a alteração. Por exemplo, insira Importar do GitHub e selecione Ctrl+Enter para confirmar as alterações. Em seguida, selecione Sincronizar alterações para sincronizar as alterações de volta ao repositório.
Escolha o código-fonte para o código Terraform e Ansible
Você pode executar o código do SAP Deployment Automation Framework diretamente do GitHub ou importá-lo localmente.
Executar o código a partir de um repositório local
Se você quiser executar o código do SAP Deployment Automation Framework do projeto local do Azure DevOps, será necessário criar um repositório de código separado e um repositório de configuração no projeto Azure DevOps:
- Nome do repositório de configuração:
Same as the DevOps Project name
. Fonte éhttps://github.com/Azure/sap-automation-bootstrap.git
. - Nome do repositório de código:
sap-automation
. Fonte éhttps://github.com/Azure/sap-automation.git
. - Nome do repositório de amostra e modelo:
sap-samples
. Fonte éhttps://github.com/Azure/sap-automation-samples.git
.
Execute o código diretamente do GitHub
Se você quiser executar o código diretamente do GitHub, precisará fornecer credenciais para que o Azure DevOps possa extrair o conteúdo do GitHub.
Criar a conexão de serviço do GitHub
Para efetuar pull do código do GitHub, você precisa de uma conexão de serviço do GitHub. Para obter mais informações, consulte Gerenciar conexões de serviço.
Para criar a conexão de serviço, vá para Configurações do Projeto e, na seção Pipelines, vá para Conexões de serviço.
Selecione GitHub como o tipo de conexão de serviço. Selecione Azure Pipelines na lista suspensa Configuração do OAuth.
Selecione Autorizar para entrar no GitHub.
Insira um nome de conexão de serviço, por exemplo, Conexão SDAF com o GitHub. Verifique se a caixa de seleção Conceder permissão de acesso para todos os pipelines está marcada. Selecione Salvar para salvar a conexão de serviço.
Configurar o aplicativo Web
Opcionalmente, a estrutura de automação provisiona um aplicativo Web como parte do painel de controle para ajudar com a zona de carga de trabalho do SAP e com os arquivos de configuração do sistema. Se você quiser usar o aplicativo Web, primeiro crie um registro de aplicativo para fins de autenticação. Abra o Azure Cloud Shell e execute os seguintes comandos.
Substitua MGMT
pelo seu ambiente, conforme necessário.
echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json
TF_VAR_app_registration_app_id=$(az ad app create --display-name MGMT-webapp-registration --enable-id-token-issuance true --sign-in-audience AzureADMyOrg --required-resource-access @manifest.json --query "appId" | tr -d '"')
echo $TF_VAR_app_registration_app_id
az ad app credential reset --id $TF_VAR_app_registration_app_id --append --query "password"
rm manifest.json
Salve a ID de registro do aplicativo e os valores de senha para uso posterior.
Criar o Azure Pipelines
Os Pipelines do Azure são implementados como arquivos YAML. Eles são armazenados na pasta deploy/pipelines no repositório.
Pipeline de implantação do plano de controle
Crie o pipeline de implantação do plano de controle. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | pipelines/01-deploy-control-plane.yml |
Nome | Implantação do plano de controle |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como Implantação do plano de controle.
Pipeline de implantação de zona de carga de trabalho SAP
Crie o pipeline de zona de carga de trabalho do SAP. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | pipelines/02-sap-workload-zone.yml |
Nome | Implantação de zona de carga de trabalho SAP |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como implantação de zona de carga de trabalho SAP.
Pipeline de implantação de sistema SAP
Crie o pipeline de implantação do sistema SAP. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | pipelines/03-sap-system-deployment.yml |
Nome | Implantação do sistema SAP (infraestrutura) |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como implantação do sistema SAP (infraestrutura).
Pipeline de aquisição de software SAP
Crie o pipeline de aquisição de software SAP. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | deploy/pipelines/04-sap-software-download.yml |
Nome | Aquisição de software SAP |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como aquisição de software SAP.
Pipeline de instalação de software e configuração do SAP
Crie o pipeline de configuração e instalação de software do SAP. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | pipelines/05-DB-and-SAP-installation.yml |
Nome | Configuração e instalação do SAP |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como configuração SAP e instalação de software.
Pipeline de remoção de implantação
Crie o pipeline de remoção de implantação. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | pipelines/10-remover-terraform.yml |
Nome | Remoção da implantação |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como Remoção de implantação.
Pipeline de remoção do painel de controle
Crie o pipeline de remoção de implantação do plano de controle. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | pipelines/12-remove-control-plane.yml |
Nome | Remoção do painel de controle |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como Remoção do plano de controle.
Pipeline de remoção de implantação usando o Gerenciador de Recursos do Azure
Crie o pipeline do Gerenciador de Recursos do Azure de remoção de implantação. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | pipelines/11-remover-arm-fallback.yml |
Nome | Remoção de implantação usando o Gerenciador de Recursos do Azure |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como Remoção de implantação usando o processador ARM.
Observação
Use esse pipeline apenas como último recurso. A remoção apenas dos grupos de recursos deixa resquícios que podem complicar as reimplantações.
Pipeline do atualizador de repositório
Crie o pipeline do atualizador do repositório. Na seção Pipelines, selecione New Pipeline. Selecione Azure Repos Git como a origem do seu código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configuração | Valor |
---|---|
Repo | "Root repo" (mesmo que o nome do projeto) |
Branch | main |
Caminho | pipelines/20-update-ado-repository.yml |
Nome | Atualizador de repositório |
Salve o pipeline. Para ver Salvar, selecione a divisa ao lado de Executar. Vá para a seção Pipelines e selecione o pipeline. Escolha Renomear/Mover no menu de reticências à direita e renomeie o pipeline como atualizador do repositório.
Esse pipeline deve ser usado quando houver uma atualização no repositório de automação do SAP que você deseja usar.
Importar a tarefa de limpeza do Visual Studio Marketplace
Os pipelines usam uma tarefa personalizada para executar atividades de limpeza após a implantação. Você pode instalar a tarefa personalizada a partir da Limpeza de Pós-Compilação. Instale-o em sua organização de DevOps do Azure antes de executar os pipelines.
Preparativos para um agente auto-hospedado
Crie um pool de agentes acessando Configurações Organizacionais. Na seção Pipelines, selecione Agent Pools>Add Pool. Selecione Auto-hospedado como o tipo de pool. Nomeie o pool para alinhar com o ambiente do plano de controle. Por exemplo, use
MGMT-WEEU-POOL
. Verifique se a opção Conceder permissão de acesso a todos os pipelines está selecionada e selecione Criar para criar o pool.Entre com a conta de usuário que você planeja usar em sua organização do Azure DevOps .
Na página inicial, abra as configurações do usuário e selecione Tokens de acesso pessoal.
Crie um token de acesso pessoal com estas configurações:
Pools de agentes: selecione Ler e gerenciar.
Build: Selecione Read & execute.
Código: Selecione Ler e gravar.
Grupos de variáveis: selecione Ler, criar, & gerenciar.
Anote o valor do token criado.
Definições disponíveis
Os pipelines de implantação são configurados para usar um conjunto de valores de parâmetros predefinidos definidos usando grupos de variáveis.
Variáveis comuns
As variáveis comuns são usadas por todos os pipelines de implantação. Eles são armazenados em um grupo de variáveis chamado SDAF-General
.
Crie um novo grupo de variáveis nomeado SDAF-General
usando a página Biblioteca na seção Pipelines . Adicione as seguintes variáveis:
Variável | Valor | Observações |
---|---|---|
Deployment_Configuration_Path | WORKSPACES | Para testar a configuração de exemplo, use samples/WORKSPACES em vez de WORKSPACES. |
Branch | main | |
Nome de usuário S | <SAP Support user account name> |
|
Senha S | <SAP Support user password> |
Altere o tipo de variável para secreto selecionando o ícone de cadeado. |
tf_version |
1.6.0 | A versão Terraform a ser usada. Veja o download do Terraform. |
Salve as variáveis.
Como alternativa, você pode usar a CLI de DevOps do Azure para configurar os grupos.
s-user="<SAP Support user account name>"
s-password="<SAP Support user password>"
az devops login
az pipelines variable-group create --name SDAF-General --variables ANSIBLE_HOST_KEY_CHECKING=false Deployment_Configuration_Path=WORKSPACES Branch=main S-Username=$s-user S-Password=$s-password tf_varsion=1.3.0 --output yaml
Lembre-se de atribuir permissões para todos os pipelines usando permissões de pipeline.
Variáveis específicas do ambiente
Como cada ambiente pode ter credenciais de implantação diferentes, você precisa criar um grupo de variáveis por ambiente. Por exemplo, use SDAF-MGMT
,SDAF-DEV
e SDAF-QA
.
Crie um novo grupo de variáveis nomeado SDAF-MGMT
para o ambiente do plano de controle usando a página Biblioteca na seção Pipelines . Adicione as seguintes variáveis:
Variável | Valor | Observações |
---|---|---|
Agente | Azure Pipelines ou o nome do pool de agentes |
Esse pool é criado em uma etapa posterior. |
CP_ARM_CLIENT_ID | Service principal application ID |
|
CP_ARM_OBJECT_ID | Service principal object ID |
|
CP_ARM_CLIENT_SECRET | Service principal password |
Altere o tipo de variável para secreto selecionando o ícone de cadeado. |
CP_ARM_SUBSCRIPTION_ID | Target subscription ID |
|
CP_ARM_TENANT_ID | Tenant ID para o responsável de serviço |
|
AZURE_CONNECTION_NAME | Nome da conexão criado anteriormente | |
sap_fqdn | Nome de domínio totalmente qualificado SAP, por exemplo, sap.contoso.net |
Necessário somente se DNS privado não for usado. |
FENCING_SPN_ID | Service principal application ID para o agente de esgrima |
Necessário para implantações altamente disponíveis que usam uma entidade de serviço para o agente de cercamento. |
FENCING_SPN_PWD | Service principal password para o agente de esgrima |
Necessário para implantações altamente disponíveis que usam uma entidade de serviço para o agente de cercamento. |
FENCING_SPN_TENANT | Service principal tenant ID para o agente de esgrima |
Necessário para implantações altamente disponíveis que usam uma entidade de serviço para o agente de cercamento. |
PAT | <Personal Access Token> |
Use o token pessoal definido na etapa anterior. |
POOL | <Agent Pool name> |
O pool de agentes a ser usado para esse ambiente. |
APP_REGISTRATION_APP_ID | App registration application ID |
Obrigatório se estiver implantando o aplicativo Web. |
WEB_APP_CLIENT_SECRET | App registration password |
Obrigatório se estiver implantando o aplicativo Web. |
SDAF_GENERAL_GROUP_ID | A ID do grupo para o grupo SDAF-General | O ID pode ser recuperado do parâmetro variableGroupId URL ao acessar o grupo de variáveis usando um navegador. Por exemplo: variableGroupId=8 . |
WORKLOADZONE_PIPELINE_ID | A ID do SAP workload zone deployment pipeline |
A ID pode ser recuperada do parâmetro definitionId URL da página de pipeline no Azure DevOps. Por exemplo: definitionId=31 . |
SYSTEM_PIPELINE_ID | A ID do SAP system deployment (infrastructure) pipeline |
A ID pode ser recuperada do parâmetro definitionId URL da página de pipeline no Azure DevOps. Por exemplo: definitionId=32 . |
Salve as variáveis.
Lembre-se de atribuir permissões para todos os pipelines usando permissões de pipeline.
Ao usar o aplicativo Web, verifique se o Serviço de Criação tem pelo menos permissões de Contribuição.
Você pode usar a funcionalidade de clone para criar o próximo grupo de variáveis de ambiente. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID e SYSTEM_PIPELINE_ID somente são necessários para o grupo SDAF-MGMT.
Criar uma conexão de serviço
Para remover os recursos do Azure, você precisa de uma conexão de serviço do Azure Resource Manager. Para obter mais informações, consulte Gerenciar conexões de serviço.
Para criar a conexão de serviço, vá para Configurações do projeto. Na seção Pipelines, selecione Conexões de serviço.
Selecione Azure Resource Manager como o tipo de conexão de serviço e Service principal (manual) como o método de autenticação. Insira a assinatura de destino, que normalmente é a assinatura do plano de controle. Insira os detalhes da entidade de serviço. Selecione Verificar para validar as credenciais. Para obter mais informações sobre como criar uma entidade de serviço, consulte Criar uma entidade de serviço.
Insira um nome de conexão de serviço, por exemplo, use Connection to MGMT subscription
. Verifique se a caixa de seleção Conceder permissão de acesso para todos os pipelines está marcada. Selecione Verificar e salvar para salvar a conexão de serviço.
Permissões
A maioria dos pipelines adiciona arquivos aos repositórios do Azure e, portanto, requer permissões pull. Em Configurações do Projeto, na seção Repositórios , selecione a guia Segurança do repositório de código-fonte e atribua permissões do Contribute ao Build Service
.
Implantar o painel de controle
Pipelines recém-criados podem não estar visíveis na exibição padrão. Selecione a guia Recente e volte para Todas as guias para exibir os novos pipelines.
Selecione o pipeline de implantação do plano de controle e insira os nomes de configuração do implantador e da biblioteca SAP. Selecione Executar para implantar o plano de controle. Certifique-se de marcar a caixa de seleção Implantar o aplicativo Web de configuração se desejar configurar o aplicativo Web de configuração.
Configurar manualmente o agente auto-hospedado do Azure DevOps Services
A configuração manual só será necessária se o agente dos Serviços de DevOps do Azure não estiver configurado automaticamente. Verifique se o pool de agentes está vazio antes de continuar.
Para se conectar ao implantador:
Entre no portal do Azure.
Vá para o grupo de recursos que contém a máquina virtual do implementador.
Conecte-se à máquina virtual usando o Azure Bastion.
O nome de usuário padrão é azureadm.
Selecione chave privada SSH no Azure Key Vault.
Selecione a assinatura que contém o painel de controle.
Selecione o cofre de chaves do implantador.
Na lista de segredos, selecione o segredo que termina com -sshkey.
Conectar-se à máquina virtual.
Execute o seguinte script para configurar o implementador:
mkdir -p ~/Azure_SAP_Automated_Deployment
cd ~/Azure_SAP_Automated_Deployment
git clone https://github.com/Azure/sap-automation.git
cd sap-automation/deploy/scripts
./configure_deployer.sh
Reinicialize o implantador, reconecte-se e execute o seguinte script para configurar o agente de DevOps do Azure:
cd ~/Azure_SAP_Automated_Deployment/
$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh
Aceite a licença e, quando for solicitada a URL do servidor, insira a URL capturada quando criou o projeto de DevOps do Azure. Para autenticação, selecione PAT e insira o valor do token da etapa anterior.
Quando solicitado, insira o nome do pool de aplicativos que você criou na etapa anterior. Aceite o nome do agente padrão e o nome da pasta de trabalho padrão. O agente agora está configurado e é iniciado.
Implantar o aplicativo Web do plano de controle
A seleção do parâmetro ao executar o pipeline de implantação do deploy the web app infrastructure
plano de controle provisiona a infraestrutura necessária para hospedar o aplicativo Web. O pipeline Implantar aplicativo Web publica o software do aplicativo nessa infraestrutura.
Aguarde até que a implantação seja concluída. Selecione a guia Extensões e siga as instruções para finalizar a configuração. Atualize os reply-url
valores para o registro do aplicativo.
Como resultado da execução do pipeline do plano de controle, parte da URL do aplicativo Web necessária é armazenada em uma variável nomeada WEBAPP_URL_BASE
no grupo de variáveis específicas do ambiente. A qualquer momento, você pode atualizar as URLs do aplicativo Web de aplicativo registrado usando o comando a seguir.
webapp_url_base=<WEBAPP_URL_BASE>
az ad app update --id $TF_VAR_app_registration_app_id --web-home-page-url https://${webapp_url_base}.azurewebsites.net --web-redirect-uris https://${webapp_url_base}.azurewebsites.net/ https://${webapp_url_base}.azurewebsites.net/.auth/login/aad/callback
Você também precisa conceder permissões de leitor para a identidade gerenciada atribuída ao sistema de serviço de aplicativo. Vá para o recurso de serviço de aplicativo. No lado esquerdo, selecione Identidade. Na guia Sistema atribuído, selecione Atribuições de função do Azure Adicionar atribuição de>função. Selecione Assinatura como escopo e Leitor como função. Em seguida, selecione Salvar. Sem essa etapa, a funcionalidade suspensa do aplicativo Web não funcionará.
Agora você deve ser capaz de visitar o aplicativo Web e usá-lo para implantar zonas de carga de trabalho SAP e infraestrutura do sistema SAP.