Configurar o plano de controle

O plano de controle do SAP Deployment Automation Framework consiste nos seguintes componentes:

  • Implantador
  • Biblioteca SAP

Diagrama que mostra o plano de controle.

Implantador

O deployer é o mecanismo de execução do SAP Deployment Automation Framework. É uma máquina virtual (VM) pré-configurada que é usada para executar comandos Terraform e Ansible. Quando você usa o Azure DevOps, o implantador é um agente auto-hospedado.

A configuração do implantador é executada em um arquivo variável Terraform tfvars .

Se você quiser usar um grupo de recursos existente para o Deployer, forneça a ID de recurso do Azure para o grupo de recursos usando o resource_group_arm_id parâmetro no arquivo tfvars do deployer. Se o parâmetro não estiver definido, o grupo de recursos será criado usando a nomenclatura padrão. Você pode alterar o nome padrão usando o resource_group_name parâmetro.

Parâmetros Terraform

Esta tabela mostra os parâmetros Terraform. Esses parâmetros precisam ser inseridos manualmente se você não estiver usando os scripts de implantação.

Variável Description Type
tfstate_resource_id Identificador de recurso do Azure para a conta de armazenamento na biblioteca SAP que contém os arquivos de estado Terraform Necessário

Parâmetros do ambiente

Esta tabela mostra os parâmetros que definem a nomenclatura do recurso.

Variável Description Type Notas
environment Identificador do plano de controlo (máx. 5 caracteres). Obrigatório Por exemplo, PROD para um ambiente de produção e NP para um ambiente de não produção.
location Região do Azure na qual implantar. Necessário Use minúsculas.
codename Componente adicional para nomear os recursos. Opcional
name_override_file Arquivo de substituição de nome. Opcional Consulte Nomenclatura personalizada.
place_delete_lock_on_resources Coloque um bloqueio de exclusão nos recursos da chave. Opcional

Grupo de recursos

Esta tabela mostra os parâmetros que definem o grupo de recursos.

Variável Description Type
resourcegroup_name Nome do grupo de recursos a ser criado Opcional
resourcegroup_arm_id Identificador de recursos do Azure para um grupo de recursos existente Opcional
resourcegroup_tags Tags a serem associadas ao grupo de recursos Opcional

Parâmetros de rede

A estrutura de automação suporta a criação da rede virtual e das sub-redes (campo verde) ou o uso de uma rede virtual existente e sub-redes existentes (campo marrom) ou uma combinação de campo verde e campo marrom:

  • Cenário de campo verde: O espaço de endereço de rede virtual e os prefixos de endereço de sub-rede devem ser especificados.
  • Cenário de campo marrom: o identificador de recurso do Azure para a rede virtual e as sub-redes deve ser especificado.

O CIDR recomendado do espaço de endereço de rede virtual é /27, que permite espaço para 32 endereços IP. Um valor CIDR de /28 só permite 16 endereços IP. Se você quiser incluir o Firewall do Azure, use um valor CIDR de /25, porque o Firewall do Azure requer um intervalo de /26.

O valor CIDR recomendado para a sub-rede de gerenciamento é /28, que permite 16 endereços IP. O valor CIDR recomendado para a sub-rede do firewall é /26, que permite 64 endereços IP.

Esta tabela mostra os parâmetros de rede.

Variável Description Type Notas
management_network_name O nome da rede virtual na qual o implantador será implantado Opcional Para implantações green-field
management_network_logical_name O nome lógico da rede (DEV-WEEU-MGMT01-INFRASTRUCTURE) Necessário
management_network_arm_id O identificador de recurso do Azure para a rede virtual Opcional Para implantações brown-field
management_network_address_space O intervalo de endereços para a rede virtual Obrigatório Para implantações green-field
management_subnet_name O nome da sub-rede Opcional
management_subnet_address_prefix O intervalo de endereços para a sub-rede Obrigatório Para implantações green-field
management_subnet_arm_id O identificador de recurso do Azure para a sub-rede Obrigatório Para implantações brown-field
management_subnet_nsg_name O nome do grupo de segurança de rede Opcional
management_subnet_nsg_arm_id O identificador de recurso do Azure para o grupo de segurança de rede Obrigatório Para implantações brown-field
management_subnet_nsg_allowed_ips Intervalo de endereços IP permitidos a serem adicionados ao Firewall do Azure Opcional
management_firewall_subnet_arm_id O identificador de recurso do Azure para a sub-rede do Firewall do Azure Obrigatório Para implantações brown-field
management_firewall_subnet_address_prefix O intervalo de endereços para a sub-rede Obrigatório Para implantações green-field
management_bastion_subnet_arm_id O identificador de recurso do Azure para a sub-rede do Azure Bastion Obrigatório Para implantações brown-field
management_bastion_subnet_address_prefix O intervalo de endereços para a sub-rede Obrigatório Para implantações green-field
webapp_subnet_arm_id O identificador de recurso do Azure para a sub-rede do aplicativo Web Obrigatório Para implantações brown-field
webapp_subnet_address_prefix O intervalo de endereços para a sub-rede Obrigatório Para implantações green-field
use_private_endpoint Use pontos de extremidade privados. Opcional
use_service_endpoint Use pontos de extremidade de serviço para sub-redes. Opcional

Nota

Quando você usa uma sub-rede existente para o aplicativo Web, a sub-rede deve estar vazia, na mesma região do grupo de recursos que está sendo implantado e delegada a Microsoft.Web/serverFarms.

Parâmetros da máquina virtual do implantador

Esta tabela mostra os parâmetros relacionados à VM do deployer.

Variável Description Type
deployer_size Define a SKU da VM a ser usada, padrão: Standard_D4ds_v4 Opcional
deployer_count Define o número de implantadores Opcional
deployer_image Define a imagem da VM a ser usada, padrão: Ubuntu 22.04 Opcional
plan Define o plano associado à imagem da VM Opcional
deployer_disk_type Define o tipo de disco, padrão: Premium_LRS Opcional
deployer_use_DHCP Controla se os endereços IP fornecidos pela sub-rede do Azure devem ser usados (dinâmicos) true Opcional
deployer_private_ip_address Define o endereço IP privado a ser usado Opcional
deployer_enable_public_ip Define se o implantador tem um IP público Opcional
auto_configure_deployer Define se o implementador está configurado com o software necessário (Terraform e Ansible) Opcional
add_system_assigned_identity Define se o implantador recebe uma identidade do sistema Opcional

A imagem da VM é definida usando a seguinte estrutura:

xxx_vm_image  = {
  os_type         = ""
  source_image_id = ""
  publisher       = "Canonical"
  offer           = "0001-com-ubuntu-server-jammy"
  sku             = "22_04-lts"
  version         = "latest"
  type            = "marketplace"
}

Nota

O tipo pode ser marketplace/marketplace_with_plan/custom. Usar uma imagem do tipo marketplace_with_plan requer que a imagem em questão tenha sido usada pelo menos uma vez na assinatura. O primeiro uso solicita que o usuário aceite os termos da licença e a automação não tem meios de aprová-lo.

Parâmetros de autenticação

Esta seção define os parâmetros usados para definir a autenticação da VM.

Variável Description Type
deployer_vm_authentication_type Define a autenticação padrão para o implantador Opcional
deployer_authentication_username Nome da conta de administrador Opcional
deployer_authentication_password Palavra-passe de administrador Opcional
deployer_authentication_path_to_public_key Caminho para a chave pública usada para autenticação Opcional
deployer_authentication_path_to_private_key Caminho para a chave privada usada para autenticação Opcional
use_spn Se definido, a implantação será executada usando uma entidade de serviço, caso contrário, um MSI Opcional

Parâmetros principais do cofre

Esta seção define os parâmetros usados para definir as informações do Cofre de Chaves do Azure.

Variável Description Type
user_keyvault_id Identificador de recurso do Azure para o cofre de chave de usuário. Opcional
spn_keyvault_id Identificador de recurso do Azure para o cofre de chaves que contém as credenciais de implantação. Opcional
deployer_private_key_secret_name O nome secreto do cofre de chaves para a chave privada do deployer. Opcional
deployer_public_key_secret_name O nome secreto do cofre de chaves para a chave pública do implantador. Opcional
deployer_username_secret_name O nome secreto do cofre de chaves para o nome de usuário do deployer. Opcional
deployer_password_secret_name O nome secreto do cofre de chaves para a senha do implantador. Opcional
additional_users_to_add_to_keyvault_policies Uma lista de IDs de objeto de usuário a serem adicionadas às políticas de acesso ao cofre da chave de implantação. Opcional
set_secret_expiry Prazo de validade definido de 12 meses para segredos do cofre de chaves. Opcional
soft_delete_retention_days O número de dias que os itens devem ser retidos no período de exclusão suave. Opcional
deployer_assign_subscription_permissions Controla a atribuição de permissão de assinatura. Opcional

Suporte a DNS

Variável Description Type
dns_label Nome DNS da zona DNS privada. Opcional
use_custom_dns_a_registration Usa um sistema externo para DNS, definido como false para nativo do Azure. Opcional
management_dns_subscription_id ID de subscrição para a subscrição que contém a zona DNS privado. Opcional
management_dns_resourcegroup_name Grupo de recursos que contém a zona DNS privada. Opcional

Outros parâmetros

Variável Description Type Notas
firewall_deployment Sinalizador booleano que controla se um firewall do Azure deve ser implantado. Opcional
bastion_deployment Sinalizador booleano que controla se o host do Azure Bastion deve ser implantado. Opcional
bastion_sku SKU para o host do Azure Bastion a ser implantado (Básico/Padrão). Opcional
enable_purge_control_for_keyvaults Sinalizador booleano que controla se o controle de limpeza está habilitado no cofre de chaves. Opcional Use apenas para implantações de teste.
enable_firewall_for_keyvaults_and_storage Restrinja o acesso a sub-redes selecionadas. Opcional
Agent_IP Endereço IP do agente. Opcional
add_Agent_IP Controla se o IP do agente é adicionado ao cofre de chaves e aos firewalls da conta de armazenamento Opcional

Parâmetros do aplicativo Web

Variável Description Type Notas
use_webapp Valor booleano que indica se um webapp deve ser implantado. Opcional
app_service_SKU_name A SKU do Plano do Serviço de Aplicativo. Opcional
app_registration_app_id O ID de registro do aplicativo a ser usado para o webapp. Opcional
webapp_client_secret A SKU do Plano do Serviço de Aplicativo. Opcional Será persistido no Cofre da Chave

Exemplo de arquivo de parâmetros para deployer (somente parâmetros necessários)

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

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

# management_network_address_space is the address space for management virtual network
management_network_address_space="10.10.20.0/25"

# management_subnet_address_prefix is the address prefix for the management subnet
management_subnet_address_prefix="10.10.20.64/28"

# management_firewall_subnet_address_prefix is the address prefix for the firewall subnet
management_firewall_subnet_address_prefix="10.10.20.0/26"

# management_bastion_subnet_address_prefix is a mandatory parameter if bastion is deployed and if the subnets are not defined in the workload or if existing subnets are not used
management_bastion_subnet_address_prefix = "10.10.20.128/26"

deployer_enable_public_ip=false

firewall_deployment=true

bastion_deployment=true

Biblioteca SAP

A biblioteca SAP fornece o armazenamento persistente dos arquivos de estado Terraform e a mídia de instalação SAP baixada para o plano de controle.

A configuração da biblioteca SAP é realizada em um arquivo variável Terraform tfvars .

Se você quiser usar um grupo de recursos existente para a Biblioteca SAP, forneça a ID de recurso do Azure para o grupo de recursos usando o resource_group_arm_id parâmetro no arquivo tfvars do implantador. Se o parâmetro não estiver definido, o grupo de recursos será criado usando a nomenclatura padrão. Você pode alterar o nome padrão usando o resource_group_name parâmetro.

Parâmetros Terraform

Esta tabela mostra os parâmetros Terraform. Esses parâmetros precisam ser inseridos manualmente se você não estiver usando os scripts de implantação ou os Pipelines do Azure.

Variável Description Type Notas
deployer_tfstate_key Nome do arquivo de estado para o implantador Necessário

Parâmetros do ambiente

Esta tabela mostra os parâmetros que definem a nomenclatura do recurso.

Variável Description Type Notas
environment Identificador do plano de controlo (máximo de cinco carateres) Obrigatório Por exemplo, PROD para um ambiente de produção e NP para um ambiente de não produção.
location Região do Azure na qual implantar Necessário Use minúsculas.
name_override_file Arquivo de substituição de nome Opcional Consulte Nomenclatura personalizada.

Grupo de recursos

Esta tabela mostra os parâmetros que definem o grupo de recursos.

Variável Description Type
resourcegroup_name Nome do grupo de recursos a ser criado Opcional
resourcegroup_arm_id Identificador de recursos do Azure para um grupo de recursos existente Opcional
resourcegroup_tags Tags a serem associadas ao grupo de recursos Opcional

Conta de armazenamento de mídia de instalação SAP

Variável Description Type
library_sapmedia_arm_id Identificador de recurso do Azure Opcional

Conta de armazenamento de estado remoto Terraform

Variável Description Type
library_terraform_state_arm_id Identificador de recurso do Azure Opcional

Suporte a DNS

Variável Description Type
dns_label Nome DNS da zona DNS privada. Opcional
use_custom_dns_a_registration Use uma zona DNS privada existente. Opcional
management_dns_subscription_id ID de subscrição para a subscrição que contém a zona DNS privado. Opcional
management_dns_resourcegroup_name Grupo de recursos que contém a zona DNS privada. Opcional

Parâmetros extras

Variável Description Type
use_private_endpoint Use pontos de extremidade privados. Opcional
use_service_endpoint Use pontos de extremidade de serviço para sub-redes. Opcional
enable_firewall_for_keyvaults_and_storage Restrinja o acesso a sub-redes selecionadas. Opcional
subnets_to_add_to_firewall_for_keyvaults_and_storage Sub-redes que precisam de acesso a cofres de chaves e contas de armazenamento. Opcional

Exemplo de arquivo de parâmetros para a biblioteca SAP (somente parâmetros necessários)

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

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

Próximo passo