Configurar o plano de controle
O plano de controle do SAP Deployment Automation Framework consiste nos seguintes componentes:
- Implantador
- Biblioteca SAP
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"