Configurare il piano di controllo
Il piano di controllo per SAP Deployment Automation Framework è costituito dai componenti seguenti:
- Deployer
- Libreria SAP
Deployer
Il deployer è il motore di esecuzione di SAP Deployment Automation Framework. Si tratta di una macchina virtuale preconfigurata usata per l'esecuzione di comandi Terraform e Ansible. Quando si usa Azure DevOps, il deployer è un agente self-hosted.
La configurazione del deployer viene eseguita in un file di variabile Terraform tfvars
.
Se si vuole usare un gruppo di risorse esistente per deployer, specificare l'ID risorsa di Azure per il gruppo di risorse usando il resource_group_arm_id
parametro nel file tfvars del deployer. Se il parametro non è definito, il gruppo di risorse viene creato usando la denominazione predefinita. È possibile modificare il nome predefinito usando il resource_group_name
parametro .
Parametri terraform
Questa tabella mostra i parametri terraform. Questi parametri devono essere immessi manualmente se non si usano gli script di distribuzione.
Variabile | Descrizione | Tipo |
---|---|---|
tfstate_resource_id |
Identificatore di risorsa di Azure per l'account di archiviazione nella libreria SAP che contiene i file di stato terraform | Richiesto |
Parametri di ambiente
Questa tabella mostra i parametri che definiscono la denominazione delle risorse.
Variabile | Descrizione | Type | Note |
---|---|---|---|
environment |
Identificatore del piano di controllo (massimo 5 caratteri). | Obbligatorio | Ad esempio, PROD per un ambiente di produzione e NP per un ambiente non di produzione. |
location |
Area di Azure in cui eseguire la distribuzione. | Richiesto | Usare lettere minuscole. |
codename |
Componente aggiuntivo per la denominazione delle risorse. | Facoltativo | |
name_override_file |
File di override del nome. | Facoltativo | Vedere Denominazione personalizzata. |
place_delete_lock_on_resources |
Inserire un blocco di eliminazione sulle risorse chiave. | Facoltativo |
Gruppo di risorse
Questa tabella mostra i parametri che definiscono il gruppo di risorse.
Variabile | Descrizione | Tipo |
---|---|---|
resourcegroup_name |
Nome del gruppo di risorse da creare | Facoltativo |
resourcegroup_arm_id |
Identificatore di risorsa di Azure per un gruppo di risorse esistente | Facoltativo |
resourcegroup_tags |
Tag da associare al gruppo di risorse | Facoltativo |
Parametri di rete
Il framework di automazione supporta sia la creazione della rete virtuale che le subnet (campo verde) o l'uso di una rete virtuale esistente e subnet esistenti (campo marrone) o una combinazione di campo verde e campo marrone:
- Scenario di campo verde: è necessario specificare lo spazio degli indirizzi della rete virtuale e i prefissi degli indirizzi della subnet.
- Scenario brown-field: è necessario specificare l'identificatore della risorsa di Azure per la rete virtuale e le subnet.
Il CIDR consigliato dello spazio di indirizzi della rete virtuale è /27, che consente lo spazio per 32 indirizzi IP. Un valore CIDR pari a /28 consente solo 16 indirizzi IP. Se si desidera includere Firewall di Azure, usare un valore CIDR pari a /25, perché Firewall di Azure richiede un intervallo di /26.
Il valore CIDR consigliato per la subnet di gestione è /28, che consente 16 indirizzi IP. Il valore CIDR consigliato per la subnet del firewall è /26, che consente 64 indirizzi IP.
Questa tabella mostra i parametri di rete.
Variabile | Descrizione | Type | Note |
---|---|---|---|
management_network_name |
Nome della rete virtuale in cui verrà distribuito il deployer | Facoltativo | Per le distribuzioni in campo verde |
management_network_logical_name |
Nome logico della rete (DEV-W edizione Enterprise U-MGMT01-INFRASTRUCTURE) | Richiesto | |
management_network_arm_id |
Identificatore della risorsa di Azure per la rete virtuale | Facoltativo | Per le distribuzioni brown-field |
management_network_address_space |
Intervallo di indirizzi per la rete virtuale | Obbligatorio | Per le distribuzioni in campo verde |
management_subnet_name |
Nome della subnet | Facoltativo | |
management_subnet_address_prefix |
Intervallo di indirizzi per la subnet | Obbligatorio | Per le distribuzioni in campo verde |
management_subnet_arm_id |
Identificatore della risorsa di Azure per la subnet | Obbligatorio | Per le distribuzioni brown-field |
management_subnet_nsg_name |
Nome del gruppo di sicurezza di rete | Facoltativo | |
management_subnet_nsg_arm_id |
Identificatore della risorsa di Azure per il gruppo di sicurezza di rete | Obbligatorio | Per le distribuzioni brown-field |
management_subnet_nsg_allowed_ips |
Intervallo di indirizzi IP consentiti da aggiungere a Firewall di Azure | Facoltativo | |
management_firewall_subnet_arm_id |
Identificatore della risorsa di Azure per la subnet Firewall di Azure | Obbligatorio | Per le distribuzioni brown-field |
management_firewall_subnet_address_prefix |
Intervallo di indirizzi per la subnet | Obbligatorio | Per le distribuzioni in campo verde |
management_bastion_subnet_arm_id |
Identificatore della risorsa di Azure per la subnet di Azure Bastion | Obbligatorio | Per le distribuzioni brown-field |
management_bastion_subnet_address_prefix |
Intervallo di indirizzi per la subnet | Obbligatorio | Per le distribuzioni in campo verde |
webapp_subnet_arm_id |
Identificatore della risorsa di Azure per la subnet dell'app Web | Obbligatorio | Per le distribuzioni brown-field |
webapp_subnet_address_prefix |
Intervallo di indirizzi per la subnet | Obbligatorio | Per le distribuzioni in campo verde |
use_private_endpoint |
Usare endpoint privati. | Facoltativo | |
use_service_endpoint |
Usare gli endpoint di servizio per le subnet. | Facoltativo |
Nota
Quando si usa una subnet esistente per l'app Web, la subnet deve essere vuota, nella stessa area del gruppo di risorse da distribuire e delegata a Microsoft.Web/serverFarms.
Parametri della macchina virtuale deployer
Questa tabella mostra i parametri correlati alla macchina virtuale del deployer.
Variabile | Descrizione | Tipo |
---|---|---|
deployer_size |
Definisce lo SKU della macchina virtuale da usare, impostazione predefinita: Standard_D4ds_v4 | Facoltativo |
deployer_count |
Definisce il numero di deployer | Facoltativo |
deployer_image |
Definisce l'immagine della macchina virtuale da usare, impostazione predefinita: Ubuntu 22.04 | Facoltativo |
plan |
Definisce il piano associato all'immagine della macchina virtuale | Facoltativo |
deployer_disk_type |
Definisce il tipo di disco, impostazione predefinita: Premium_LRS | Facoltativo |
deployer_use_DHCP |
Controlla se gli indirizzi IP forniti dalla subnet di Azure devono essere usati (dinamici) true | Facoltativo |
deployer_private_ip_address |
Definisce l'indirizzo IP privato da usare | Facoltativo |
deployer_enable_public_ip |
Definisce se il deployer ha un indirizzo IP pubblico | Facoltativo |
auto_configure_deployer |
Definisce se il deployer è configurato con il software richiesto (Terraform e Ansible) | Facoltativo |
add_system_assigned_identity |
Definisce se al deployer viene assegnata un'identità di sistema | Facoltativo |
L'immagine della macchina virtuale viene definita usando la struttura seguente:
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
Il tipo può essere marketplace/marketplace_with_plan/custom
.
L'uso di un'immagine di tipo marketplace_with_plan
richiede che l'immagine in questione sia stata usata almeno una volta nella sottoscrizione. Il primo utilizzo richiede all'utente di accettare le condizioni di licenza e l'automazione non ha alcun mezzo per approvarlo.
Parametri di autenticazione
Questa sezione definisce i parametri usati per definire l'autenticazione della macchina virtuale.
Variabile | Descrizione | Tipo |
---|---|---|
deployer_vm_authentication_type |
Definisce l'autenticazione predefinita per il deployer | Facoltativo |
deployer_authentication_username |
nome account Amministrazione istrator | Facoltativo |
deployer_authentication_password |
Password amministratore | Facoltativo |
deployer_authentication_path_to_public_key |
Percorso della chiave pubblica usata per l'autenticazione | Facoltativo |
deployer_authentication_path_to_private_key |
Percorso della chiave privata usata per l'autenticazione | Facoltativo |
use_spn |
Se definita la distribuzione verrà eseguita usando un'entità servizio; in caso contrario, un'identità del servizio gestita | Facoltativo |
Parametri insieme di credenziali delle chiavi
Questa sezione definisce i parametri usati per definire le informazioni di Azure Key Vault.
Variabile | Descrizione | Tipo |
---|---|---|
user_keyvault_id |
Identificatore di risorsa di Azure per l'insieme di credenziali delle chiavi utente. | Facoltativo |
spn_keyvault_id |
Identificatore di risorsa di Azure per l'insieme di credenziali delle chiavi che contiene le credenziali di distribuzione. | Facoltativo |
deployer_private_key_secret_name |
Nome del segreto dell'insieme di credenziali delle chiavi per la chiave privata del deployer. | Facoltativo |
deployer_public_key_secret_name |
Nome del segreto dell'insieme di credenziali delle chiavi per la chiave pubblica del deployer. | Facoltativo |
deployer_username_secret_name |
Nome del segreto dell'insieme di credenziali delle chiavi per il nome utente del deployer. | Facoltativo |
deployer_password_secret_name |
Nome del segreto dell'insieme di credenziali delle chiavi per la password del deployer. | Facoltativo |
additional_users_to_add_to_keyvault_policies |
Elenco di ID oggetto utente da aggiungere ai criteri di accesso dell'insieme di credenziali delle chiavi di distribuzione. | Facoltativo |
set_secret_expiry |
Impostare la scadenza di 12 mesi per i segreti dell'insieme di credenziali delle chiavi. | Facoltativo |
soft_delete_retention_days |
Numero di giorni di conservazione degli elementi nel periodo di eliminazione temporanea. | Facoltativo |
deployer_assign_subscription_permissions |
Controlla l'assegnazione delle autorizzazioni di sottoscrizione. | Facoltativo |
Supporto DNS
Variabile | Descrizione | Tipo |
---|---|---|
dns_label |
Nome DNS della zona DNS privato. | Facoltativo |
use_custom_dns_a_registration |
Usa un sistema esterno per DNS, impostato su false per Azure nativo. | Facoltativo |
management_dns_subscription_id |
ID sottoscrizione per la sottoscrizione che contiene l'area DNS privato. | Facoltativo |
management_dns_resourcegroup_name |
Gruppo di risorse che contiene la zona DNS privato. | Facoltativo |
Altri parametri
Variabile | Descrizione | Type | Note |
---|---|---|---|
firewall_deployment |
Flag booleano che controlla se deve essere distribuito un firewall di Azure. | Facoltativo | |
bastion_deployment |
Flag booleano che controlla se l'host Azure Bastion deve essere distribuito. | Facoltativo | |
bastion_sku |
SKU per l'host Azure Bastion da distribuire (Basic/Standard). | Facoltativo | |
enable_purge_control_for_keyvaults |
Flag booleano che controlla se il controllo ripulitura è abilitato nell'insieme di credenziali delle chiavi. | Facoltativo | Usare solo per le distribuzioni di test. |
enable_firewall_for_keyvaults_and_storage |
Limitare l'accesso alle subnet selezionate. | Facoltativo | |
Agent_IP |
Indirizzo IP dell'agente. | Facoltativo | |
add_Agent_IP |
Controlla se l'indirizzo IP dell'agente viene aggiunto all'insieme di credenziali delle chiavi e ai firewall dell'account di archiviazione | Facoltativo |
Parametri dell'app Web
Variabile | Descrizione | Type | Note |
---|---|---|---|
use_webapp |
Valore booleano che indica se deve essere distribuita un'app Web. | Facoltativo | |
app_service_SKU_name |
SKU del piano di servizio app. | Facoltativo | |
app_registration_app_id |
ID di registrazione dell'app da usare per l'app Web. | Facoltativo | |
webapp_client_secret |
SKU del piano di servizio app. | Facoltativo | Verrà salvata in modo permanente in Key Vault |
File di parametri di esempio per deployer (solo parametri obbligatori)
# 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
Libreria SAP
La libreria SAP fornisce l'archiviazione permanente dei file di stato terraform e il supporto di installazione SAP scaricato per il piano di controllo.
La configurazione della libreria SAP viene eseguita in un file di variabile Terraform tfvars
.
Se si vuole usare un gruppo di risorse esistente per la libreria SAP, specificare l'ID risorsa di Azure per il gruppo di risorse usando il resource_group_arm_id
parametro nel file tfvars del deployer. Se il parametro non è definito, il gruppo di risorse viene creato usando la denominazione predefinita. È possibile modificare il nome predefinito usando il resource_group_name
parametro .
Parametri terraform
Questa tabella mostra i parametri terraform. Questi parametri devono essere immessi manualmente se non si usano gli script di distribuzione o Azure Pipelines.
Variabile | Descrizione | Type | Note |
---|---|---|---|
deployer_tfstate_key |
Nome del file di stato per il deployer | Richiesto |
Parametri di ambiente
Questa tabella mostra i parametri che definiscono la denominazione delle risorse.
Variabile | Descrizione | Type | Note |
---|---|---|---|
environment |
Identificatore per il piano di controllo (massimo cinque caratteri) | Obbligatorio | Ad esempio, PROD per un ambiente di produzione e NP per un ambiente non di produzione. |
location |
Area di Azure in cui distribuire | Richiesto | Usare lettere minuscole. |
name_override_file |
File di override del nome | Facoltativo | Vedere Denominazione personalizzata. |
Gruppo di risorse
Questa tabella mostra i parametri che definiscono il gruppo di risorse.
Variabile | Descrizione | Tipo |
---|---|---|
resourcegroup_name |
Nome del gruppo di risorse da creare | Facoltativo |
resourcegroup_arm_id |
Identificatore di risorsa di Azure per un gruppo di risorse esistente | Facoltativo |
resourcegroup_tags |
Tag da associare al gruppo di risorse | Facoltativo |
Account di archiviazione dei supporti di installazione SAP
Variabile | Descrizione | Tipo |
---|---|---|
library_sapmedia_arm_id |
Identificatore di risorsa di Azure | Facoltativo |
Account di archiviazione dello stato remoto terraform
Variabile | Descrizione | Tipo |
---|---|---|
library_terraform_state_arm_id |
Identificatore di risorsa di Azure | Facoltativo |
Supporto DNS
Variabile | Descrizione | Tipo |
---|---|---|
dns_label |
Nome DNS della zona DNS privato. | Facoltativo |
use_custom_dns_a_registration |
Usare una zona di DNS privato esistente. | Facoltativo |
management_dns_subscription_id |
ID sottoscrizione per la sottoscrizione che contiene l'area DNS privato. | Facoltativo |
management_dns_resourcegroup_name |
Gruppo di risorse che contiene la zona DNS privato. | Facoltativo |
Parametri aggiuntivi
Variabile | Descrizione | Tipo |
---|---|---|
use_private_endpoint |
Usare endpoint privati. | Facoltativo |
use_service_endpoint |
Usare gli endpoint di servizio per le subnet. | Facoltativo |
enable_firewall_for_keyvaults_and_storage |
Limitare l'accesso alle subnet selezionate. | Facoltativo |
subnets_to_add_to_firewall_for_keyvaults_and_storage |
Subnet che devono accedere agli insiemi di credenziali delle chiavi e agli account di archiviazione. | Facoltativo |
File di parametri di esempio per la libreria SAP (solo parametri obbligatori)
# 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"