Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 o Azure DevOps Services, você precisa de uma organização do Azure DevOps. Uma organização é usada para conectar grupos de projetos relacionados. Use sua conta corporativa ou de estudante para conectar automaticamente sua organização ao seu Microsoft Entra ID. Para criar uma conta, abra o Azure DevOps e entre ou crie uma conta.
Configurar os serviços do Azure DevOps para a estrutura de automação de implantação SAP
Você pode usar o script a seguir para fazer uma instalação básica do Azure DevOps Services para 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 do 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 se o projeto foi criado, acesse o portal do Azure DevOps 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 comando az upgrade
.
Configurar artefatos do Azure DevOps Services para uma nova zona de carga de trabalho
Use o script a seguir para implantar os artefatos necessários para dar 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 Create Sample Deployer Configuration
pipeline para criar uma configuração de exemplo para o plano de controle. Quando estiver em execução, escolha a região apropriada do Azure. Você também pode controlar se quiser implantar o Firewall do Azure e o Azure Bastion.
Configuração manual do Azure DevOps Services para SAP Deployment Automation Framework
Você pode configurar manualmente o Azure DevOps Services para o SAP Deployment Automation Framework.
Criar um novo projeto
Você pode usar o Azure Repos para armazenar o código do repositório GitHub de automação sap e dos 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 do código-fonte do Azure Repos e o Azure Pipelines para executar atividades de implantação.
Se você não vir o 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 https://github.com/Azure/sap-automation-bootstrap.git
para o Azure DevOps. Para obter mais informações, consulte Importar um repositório.
Se não for possível importar um repositório, você poderá criar o repositório 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
Faça essa etapa somente se não for possível importar o repositório diretamente.
Para criar o repositório de workspaces , na seção Repos , nas configurações do Project, selecione Criar.
Escolha o repositório, insira o Git e forneça um nome para o repositório. Por exemplo, use o Repositório de Configuração do SAP.
Clonar o repositório
Para fornecer uma funcionalidade de edição mais abrangente do conteúdo, você pode clonar o repositório em uma pasta local e editar o conteúdo localmente.
Para clonar o repositório em uma pasta local, na seção Repos 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 baixe o conteúdo do repositório como um arquivo de .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 do ícone de controle de 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 a origem 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 de um repositório local
Se você quiser executar o código do SAP Deployment Automation Framework no 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 do Azure DevOps:
-
Nome do repositório de configuração:
Same as the DevOps Project name
. A origem éhttps://github.com/Azure/sap-automation-bootstrap.git
. -
Nome do repositório de código:
sap-automation
. A origem éhttps://github.com/Azure/sap-automation.git
. -
Nome do repositório de exemplo e modelo:
sap-samples
. A origem éhttps://github.com/Azure/sap-automation-samples.git
.
Executar 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 o 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á selecionada. 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 plano de controle para ajudar com a zona de carga de trabalho do SAP e 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 comandos a seguir.
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.
Crie o Azure Pipelines
Os Azure Pipelines 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 Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | pipelines/01-deploy-control-plane.yml |
Nome | Implantação do painel de controle |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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 Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | pipelines/02-sap-workload-zone.yml |
Nome | Implantação da zona de carga de trabalho do SAP |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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 da zona de carga de trabalho SAP.
Fluxo de implantação do sistema SAP
Crie o pipeline de implantação do sistema SAP. Na seção Pipelines , selecione Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | pipelines/03-sap-system-deployment.yml |
Nome | Implantação do sistema SAP (infraestrutura) |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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 processo de aquisição de software SAP. Na seção Pipelines , selecione Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | deploy/pipelines/04-sap-software-download.yml |
Nome | Aquisição de software SAP |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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 Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | pipelines/05-DB-and-SAP-installation.yml |
Nome | Configuração e instalação do SAP |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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 Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | pipelines/10-remover-terraform.yml |
Nome | Remoção da implantação |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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 painel de controle. Na seção Pipelines , selecione Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | pipelines/12-remove-control-plane.yml |
Nome | Remoção do painel de controle |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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 Azure Resource Manager
Crie o pipeline de remoção de implantação do Azure Resource Manager. Na seção Pipelines , selecione Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | pipelines/11-remover-arm-fallback.yml |
Nome | Remoção de implantação usando o Azure Resource Manager |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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. Remover apenas os grupos de recursos deixa resíduos que podem complicar as novas implantações.
Pipeline do atualizador de repositório
Crie o pipeline de atualização do repositório. Na seção Pipelines , selecione Novo Pipeline. Selecione o Git do Azure Repos como a origem do código. Configure o seu pipeline para usar um arquivo YAML do Azure Pipelines existente. Especifique o pipeline com as seguintes configurações:
Configurações | Valor |
---|---|
Repositório | "Repositório raiz" (igual ao nome do projeto) |
Ramo | principal |
Caminho | pipelines/20-update-ado-repository.yml |
Nome | Atualizador de repositório |
Salve o fluxo de trabalho. Para ver Salvar, selecione a seta 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 ocorrer uma atualização no repositório sap-automation que você pretende utilizar.
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 do Post Build Cleanup. Instale-o em sua organização do Azure DevOps antes de executar os pipelines.
Preparativos para um agente hospedado localmente
Crie um pool de agentes acessando as Configurações Organizacionais. Na seção Pipelines , selecione Pools de Agentes>Adicionar Pool. Selecione Auto-hospedado como o tipo de pool. Nomeie o pool para se alinhar ao ambiente do plano de controle. Por exemplo, use
MGMT-WEEU-POOL
. Verifique se 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 home page, 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 Ler e executar.
Código: Selecione Leitura e gravação.
Grupos de Variáveis: Selecione Ler, criar e gerenciar.
Anote o valor do token criado.
Definições de variável
Os pipelines de implantação são configurados para usar um conjunto de valores de parâmetro predefinidos definidos usando grupos de variáveis.
Variáveis comuns
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 | Anotações |
---|---|---|
Deployment_Configuration_Path | Espaços de Trabalho | Para testar a configuração de exemplo, use samples/WORKSPACES em vez de WORKSPACES. |
Ramo | principal | |
Nome de usuário S | <SAP Support user account name> |
|
S-Password | <SAP Support user password> |
Altere o tipo de variável para segredo selecionando o ícone de bloqueio. |
tf_version |
1.6.0 | A versão do Terraform a ser usada. Consulte o download do Terraform. |
Salve as variáveis.
Como alternativa, você pode usar a CLI do Azure DevOps 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_version=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 | Anotaçõ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 segredo selecionando o ícone de bloqueio. |
CP_ARM_SUBSCRIPTION_ID | Target subscription ID |
|
CP_ARM_TENANT_ID |
Tenant ID para a entidade de serviço |
|
AZURE_CONNECTION_NAME | Nome da conexão criada anteriormente | |
sap_fqdn | Nome de domínio totalmente qualificado do SAP, por exemplo, sap.contoso.net |
Necessário somente se o DNS Privado não for usado. |
FENCING_SPN_ID |
Service principal application ID para o agente de isolamento |
Necessário para implantações altamente disponíveis que usam uma entidade de serviço para o agente de isolamento. |
FENCING_SPN_PWD |
Service principal password para o agente de isolamento |
Necessário para implantações altamente disponíveis que usam uma entidade de serviço para o agente de isolamento. |
FENCING_SPN_TENANT |
Service principal tenant ID para o agente de isolamento |
Necessário para implantações altamente disponíveis que usam uma entidade de serviço para o agente de isolamento. |
TAPINHA | <Personal Access Token> |
Use o token pessoal definido na etapa anterior. |
PISCINA | <Agent Pool name> |
O pool do Agente a ser usado para esse ambiente. |
APP_REGISTRATION_APP_ID | App registration application ID |
Necessário se estiver implantando o aplicativo Web. |
WEB_APP_CLIENT_SECRET | App registration password |
Necessário se estiver implantando o aplicativo Web. |
SDAF_GENERAL_GROUP_ID | O ID do grupo SDAF-General | A ID pode ser recuperada do parâmetro variableGroupId de URL ao acessar o grupo de variáveis usando um navegador. Por exemplo: variableGroupId=8 . |
WORKLOADZONE_PIPELINE_ID | A ID do pipeline SAP workload zone deployment |
A ID pode ser recuperada do parâmetro definitionId da URL da página de pipeline no Azure DevOps. Por exemplo: definitionId=31 . |
SYSTEM_PIPELINE_ID | A ID do pipeline SAP system deployment (infrastructure) |
A ID pode ser recuperada do parâmetro definitionId da 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 Build 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 são necessários apenas para o grupo de 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 o Azure Resource Manager como o tipo de conexão de serviço e o principal de serviço (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á selecionada. Selecione Verificar e salvar para salvar a conexão de serviço.
Permissões
A maioria dos pipelines adiciona arquivos ao Azure Repos e, portanto, exige permissões de 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 de Contribuição Build Service
ao .
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 selecionar a caixa Implantar o aplicativo Web de configuração se você quiser configurar o aplicativo Web de configuração.
Configurar o agente auto-hospedado do Azure DevOps Services manualmente
A configuração manual só será necessária se o agente do Azure DevOps Services 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 implantador.
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 plano de controle.
Selecione o cofre de chaves do implantador.
Na lista de segredos, selecione o segredo que termina com -sshkey.
Conecte-se à máquina virtual.
Execute o seguinte script para configurar o implantador:
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 e execute o seguinte script para configurar o agente do Azure DevOps:
cd ~/Azure_SAP_Automated_Deployment/
$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh
Aceite a licença e, quando for solicitado para a URL do servidor, insira a URL que você capturou ao criar o projeto do Azure DevOps. 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 inicia.
Implantar o aplicativo Web do painel de controle
Selecionar o deploy the web app infrastructure
parâmetro ao executar o pipeline de implantação do plano de controle provisiona a infraestrutura necessária para hospedar o aplicativo Web. O Pipeline de Implantação de 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 do registro do aplicativo.
Como resultado da execução do pipeline do plano de controle, a parte necessária da URL do aplicativo Web é armazenada em uma variável chamada WEBAPP_URL_BASE
no seu grupo de variáveis específico 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 à identidade gerenciada atribuída pelo sistema do serviço de aplicativo. Vá para o recurso do serviço de aplicativo. No lado esquerdo, selecione Identidade. Na guia Atribuída pelo sistema, selecione atribuições de função do Azure>. Selecione Assinatura como o escopo e Leitor como a função. Em seguida, selecione Salvar. Sem essa etapa, a funcionalidade suspensa do aplicativo Web não funcionará.
Agora você deve poder visitar o aplicativo e usá-lo para implantar zonas de carga de trabalho SAP e infraestrutura do sistema SAP.