Nasazení řídicí roviny
Nasazení řídicí roviny pro architekturu SAP Deployment Automation Framework se skládá z těchto:
- Deployer
- Knihovna SAP
Příprava přihlašovacích údajů nasazení
Rozhraní SAP Deployment Automation Framework používá instanční objekty pro nasazení. Pokud chcete vytvořit instanční objekt pro nasazení řídicí roviny, použijte účet, který má oprávnění k vytváření instančních objektů:
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscriptionID>" --name="<environment>-Deployment-Account"
Důležité
Název instančního objektu musí být jedinečný.
Zaznamenejte výstupní hodnoty z příkazu:
- appId
- Heslo
- tenant
Volitelně můžete instančnímu objektu přiřadit následující oprávnění:
az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscriptionID>
Pokud chcete poskytnout pouze roli User Access Správa istrator vymezené pouze skupině prostředků, použijte následující příkaz:
az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>
Nasazení řídicí roviny
Všechny artefakty potřebné k nasazení řídicí roviny se nacházejí v úložištích GitHubu.
Připravte se na nasazení řídicí roviny naklonováním úložišť pomocí následujících příkazů:
mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
git clone https://github.com/Azure/sap-automation.git sap-automation
git clone https://github.com/Azure/sap-automation-samples.git samples
Ukázkový konfigurační soubor MGMT-WEEU-DEP00-INFRASTRUCTURE.tfvars
nasazovacího nástroje se nachází ve ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/DEPLOYER/MGMT-WEEU-DEP00-INFRASTRUCTURE
složce.
Ukázkový konfigurační soubor MGMT-WEEU-SAP_LIBRARY.tfvars
knihovny SAP se nachází ve ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/LIBRARY/MGMT-WEEU-SAP_LIBRARY
složce.
Ukázkové konfigurační soubory můžete zkopírovat a začít testovat architekturu automatizace nasazení.
Minimální soubor Terraformu DEPLOYER
pro tento příklad může vypadat takto:
# The environment value is a mandatory field, it is used for partitioning the environments.
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"
firewall_deployment = false
# management_bastion_subnet_address_prefix is the address prefix for the bastion subnet
management_bastion_subnet_address_prefix = "10.10.20.128/26"
bastion_deployment = true
# deployer_enable_public_ip controls if the deployer Virtual machines will have Public IPs
deployer_enable_public_ip = false
# deployer_count defines how many deployer VMs will be deployed
deployer_count = 1
# use_service_endpoint defines that the management subnets have service endpoints enabled
use_service_endpoint = true
# use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled
use_private_endpoint = false
# enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled
enable_firewall_for_keyvaults_and_storage = false
# public_network_access_enabled controls if storage account and key vaults have public network access enabled
public_network_access_enabled = true
Poznamenejte si umístění souboru proměnných Terraformu pro budoucí úpravy během nasazování.
Minimální soubor Terraformu LIBRARY
pro tento příklad může vypadat takto:
# 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"
#Defines the DNS suffix for the resources
dns_label = "azure.contoso.net"
# use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled
use_private_endpoint = false
Poznamenejte si umístění souboru proměnných Terraformu pro budoucí úpravy během nasazování.
Spuštěním následujícího příkazu vytvořte deployer a knihovnu SAP. Příkaz přidá do trezoru klíčů nasazení podrobnosti instančního objektu.
Nastavte proměnné prostředí pro instanční objekt:
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
export ARM_CLIENT_ID="<appId>"
export ARM_CLIENT_SECRET="<password>"
export ARM_TENANT_ID="<tenantId>"
Spuštěním následujícího příkazu nasaďte řídicí rovinu:
export env_code="MGMT"
export region_code="WEEU"
export vnet_code="DEP00"
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
az logout
az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}"
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars"
library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars"
${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \
--deployer_parameter_file "${deployer_parameter_file}" \
--library_parameter_file "${library_parameter_file}" \
--subscription "${ARM_SUBSCRIPTION_ID}" \
--spn_id "${ARM_CLIENT_ID}" \
--spn_secret "${ARM_CLIENT_SECRET}" \
--tenant_id "${ARM_TENANT_ID}"
Ruční konfigurace virtuálního počítače jako nasazení SDAF pomocí služby Azure Bastion
Připojení k nasazéru:
Přihlaste se k portálu Azure.
Přejděte do skupiny prostředků, která obsahuje virtuální počítač nasazovače.
Připojení k virtuálnímu počítači pomocí služby Azure Bastion.
Výchozí uživatelské jméno je azureadm.
Vyberte privátní klíč SSH ze služby Azure Key Vault.
Vyberte předplatné, které obsahuje řídicí rovinu.
Vyberte trezor klíčů nasazovacího nástroje.
V seznamu tajných kódů vyberte tajný klíč, který končí na -sshkey.
Připojte se k virtuálnímu počítači.
Spuštěním následujícího skriptu nakonfigurujte nasazéru:
mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
wget https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/configure_deployer.sh -O configure_deployer.sh
chmod +x ./configure_deployer.sh
./configure_deployer.sh
# Source the new variables
. /etc/profile.d/deploy_server.sh
Skript nainstaluje Terraform a Ansible a nakonfiguruje nasazér.
Ruční konfigurace virtuálního počítače jako nasazení SDAF
Připojení k virtuálnímu počítači nasazovacího nástroje z počítače, který se může připojit k virtuální síti Azure.
Připojení k nasazéru:
Přihlaste se k portálu Azure.
Vyberte nebo vyhledejte trezory klíčů.
Na stránce trezoru klíčů vyhledejte trezor klíčů nasazovacího nástroje. Název začíná
MGMT[REGION]DEP00user
na . V případě potřeby vyfiltrujte podle skupiny prostředků nebo umístění.V části Nastavení v levém podokně vyberte Tajné kódy.
Vyhledejte a vyberte tajný klíč, který obsahuje klíč sshkey. Může to vypadat jako
MGMT-[REGION]-DEP00-sshkey
.Na stránce tajného kódu vyberte aktuální verzi. Potom zkopírujte hodnotu Tajné.
Otevřete editor prostého textu. Zkopírujte hodnotu tajného kódu.
Uložte soubor, do kterého uchováváte klíče SSH. Příklad:
C:\Users\<your-username>\.ssh
.Uložte soubor. Pokud se zobrazí výzva k uložení jako typu, vyberte Všechny soubory , pokud není možnost SSH . Například použijte
deployer.ssh
.Připojení k virtuálnímu počítači nasazovacího nástroje prostřednictvím libovolného klienta SSH, jako je Visual Studio Code. Použijte privátní IP adresu nasazovače a klíč SSH, který jste stáhli. Pokyny k připojení k nasazovacímu nástroji pomocí editoru Visual Studio Code najdete v tématu Připojení k nasazovacímu nástroji pomocí editoru Visual Studio Code. Pokud používáte PuTTY, nejprve pomocí PuTTYGen převeďte soubor klíče SSH.
Poznámka:
Výchozí uživatelské jméno je azureadm.
Nakonfigurujte nasazovač pomocí následujícího skriptu:
mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
wget https://raw.githubusercontent.com/Azure/sap-automation/main/deploy/scripts/configure_deployer.sh -O configure_deployer.sh
chmod +x ./configure_deployer.sh
./configure_deployer.sh
# Source the new variables
. /etc/profile.d/deploy_server.sh
Skript nainstaluje Terraform a Ansible a nakonfiguruje nasazér.
Zabezpečení řídicí roviny
Řídicí rovina je nejdůležitější součástí architektury automatizace SAP. Je důležité zabezpečit řídicí rovinu. Následující kroky vám pomůžou zabezpečit řídicí rovinu. Pokud jste řídicí rovinu vytvořili pomocí externího virtuálního počítače nebo pomocí cloud shellu, měli byste rovinu řízení zabezpečit implementací privátních koncových bodů pro účty úložiště a trezory klíčů.
Pomocí skriptu můžete sync_deployer.sh
zkopírovat konfigurační soubory řídicí roviny do virtuálního počítače nasazovacího nástroje. Přihlaste se k virtuálnímu počítači deployeru a spusťte následující příkazy:
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
../sap-automation/deploy/scripts/sync_deployer.sh --storageaccountname mgtneweeutfstate### --state_subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ujistěte se, že use_private_endpoint
je proměnná nastavená v true
konfiguračních DEPLOYER
souborech.LIBRARY
Také se ujistěte, že public_network_access_enabled
je v konfiguračních souborech DEPLOYER
nastavenýfalse
.
# use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled
use_private_endpoint = true
# public_network_access_enabled controls if storage account and key vaults have public network access enabled
public_network_access_enabled = false
Znovu spusťte nasazení řídicí roviny a povolte privátní koncové body pro účty úložiště a trezory klíčů.
export env_code="MGMT"
export region_code="WEEU"
export vnet_code="DEP00"
export storageaccountname=<storageaccountname>
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
az logout
az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}"
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars"
library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars"
${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \
--deployer_parameter_file "${deployer_parameter_file}" \
--library_parameter_file "${library_parameter_file}" \
--subscription "${ARM_SUBSCRIPTION_ID}" \
--spn_id "${ARM_CLIENT_ID}" \
--spn_secret "${ARM_CLIENT_SECRET}" \
--tenant_id "${ARM_TENANT_ID}" \
--storageaccountname "${storageaccountname}" \
--recover
Příprava webové aplikace
Tento krok je nepovinný. Pokud chcete, aby uživatelské prostředí založené na prohlížeči pomohlo s konfigurací zón a systémů úloh SAP, spusťte před nasazením řídicí roviny následující příkazy.
echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json
region_code=WEEU
export TF_VAR_app_registration_app_id=$(az ad app create \
--display-name ${region_code}-webapp-registration \
--enable-id-token-issuance true \
--sign-in-audience AzureADMyOrg \
--required-resource-access @manifest.json \
--query "appId" | tr -d '"')
export TF_VAR_webapp_client_secret=$(az ad app credential reset \
--id $TF_VAR_app_registration_app_id --append \
--query "password" | tr -d '"')
export TF_VAR_use_webapp=true
rm manifest.json