A vezérlősík üzembe helyezése
Az SAP Deployment Automation Framework vezérlősíkjának üzembe helyezése a következőkből áll:
- Üzembe helyező
- SAP-kódtár
Az üzembehelyezési hitelesítő adatok előkészítése
Az SAP Deployment Automation Framework szolgáltatásneveket használ az üzembe helyezésekhez. Ha szolgáltatásnevet szeretne létrehozni a vezérlősík üzembe helyezéséhez, használjon egy olyan fiókot, amely rendelkezik a szolgáltatásnevek létrehozásához szükséges engedélyekkel:
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscriptionID>" --name="<environment>-Deployment-Account"
Fontos
A szolgáltatásnév nevének egyedinek kell lennie.
A parancs kimeneti értékeinek rögzítése:
- appId
- jelszó
- bérlő
Igény szerint rendelje hozzá a következő engedélyeket a szolgáltatásnévhez:
az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscriptionID>
Ha csak az erőforráscsoportra vonatkozó felhasználói hozzáférési Rendszergazda istrator szerepkört szeretné megadni, használja a következő parancsot:
az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>
A vezérlősík üzembe helyezése
A vezérlősík telepítéséhez szükséges összes összetevő a GitHub-adattárakban található.
Készüljön fel a vezérlősík üzembe helyezésére az adattárak klónozásával az alábbi parancsokkal:
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
A minta üzembe helyező konfigurációs fájlja MGMT-WEEU-DEP00-INFRASTRUCTURE.tfvars
a ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/DEPLOYER/MGMT-WEEU-DEP00-INFRASTRUCTURE
mappában található.
A minta SAP-kódtár konfigurációs fájlja MGMT-WEEU-SAP_LIBRARY.tfvars
a ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/LIBRARY/MGMT-WEEU-SAP_LIBRARY
mappában található.
A mintakonfigurációs fájlokat átmásolhatja az üzembehelyezési automatizálási keretrendszer tesztelésének megkezdéséhez.
Egy minimális Terraform-fájl az DEPLOYER
alábbi példához hasonlóan nézhet ki:
# 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
Figyelje meg a Terraform változó fájlhelyeit a későbbi módosításokhoz az üzembe helyezés során.
Egy minimális Terraform-fájl az LIBRARY
alábbi példához hasonlóan nézhet ki:
# 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
Figyelje meg a Terraform változó fájlhelyeit a későbbi módosításokhoz az üzembe helyezés során.
Futtassa a következő parancsot a telepítő és az SAP-kódtár létrehozásához. A parancs hozzáadja a szolgáltatásnév adatait az üzembehelyezési kulcstartóhoz.
A szolgáltatásnév környezeti változóinak beállítása:
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
export ARM_CLIENT_ID="<appId>"
export ARM_CLIENT_SECRET="<password>"
export ARM_TENANT_ID="<tenantId>"
Futtassa a következő parancsot a vezérlősík üzembe helyezéséhez:
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}"
Virtuális gép manuális konfigurálása SDAF-üzembe helyezőként az Azure Bastion használatával
Csatlakozás a telepítőhöz:
Jelentkezzen be az Azure Portalra.
Nyissa meg a központi virtuális gépet (VM) tartalmazó erőforráscsoportot.
Csatlakozás a virtuális gépre az Azure Bastion használatával.
Az alapértelmezett felhasználónév az azureadm.
Válassza ki az SSH titkos kulcsát az Azure Key Vaultból.
Válassza ki a vezérlősíkot tartalmazó előfizetést.
Válassza ki a központi telepítési kulcstartót.
A titkos kódok listájában válassza ki a -sshkey végződésű titkos kódot.
Csatlakozzon a virtuális géphez.
Futtassa a következő szkriptet a telepítő konfigurálásához:
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
A szkript telepíti a Terraformot és az Ansible-t, és konfigurálja a telepítőt.
Virtuális gép manuális konfigurálása SDAF-üzembe helyezőként
Csatlakozás a központi virtuális gépre egy olyan számítógépről, amely elérheti az Azure-beli virtuális hálózatot.
Csatlakozás a telepítőhöz:
Jelentkezzen be az Azure Portalra.
Válassza ki vagy keresse meg a Kulcstartókat.
A Key Vault lapon keresse meg a központi telepítési kulcstartót. A név a következővel
MGMT[REGION]DEP00user
kezdődik: . Szükség esetén szűrjön az erőforráscsoport vagy a hely szerint.A bal oldali panel Gépház szakaszában válassza a Titkos kulcsok lehetőséget.
Keresse meg és válassza ki az sshkey-t tartalmazó titkos kulcsot. Lehet, hogy úgy
MGMT-[REGION]-DEP00-sshkey
néz ki .A titkos kód oldalán válassza ki az aktuális verziót. Ezután másolja ki a Titkos kulcs értéket.
Nyisson meg egy egyszerű szövegszerkesztőt. Másolja ki a titkos kulcs értékét.
Mentse azt a fájlt, amelyben az SSH-kulcsokat tárolja. Például:
C:\Users\<your-username>\.ssh
.Mentse a fájlt. Ha a rendszer a Mentés típusként parancsot kéri, válassza a Minden fájl lehetőséget, ha az SSH nem lehetőség. Használja például a következőt
deployer.ssh
: .Csatlakozás a központi virtuális gépre bármilyen SSH-ügyfélen keresztül, például a Visual Studio Code-on keresztül. Használja a telepítő magánhálózati IP-címét és a letöltött SSH-kulcsot. A telepítőhöz a Visual Studio Code használatával való csatlakozással kapcsolatos útmutatásért tekintse meg a Visual Studio Code-tal való Csatlakozás. Ha PuTTY-t használ, először konvertálja az SSH-kulcsfájlt a PuTTYGen használatával.
Megjegyzés:
Az alapértelmezett felhasználónév az azureadm.
Konfigurálja a telepítőt a következő szkript használatával:
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
A szkript telepíti a Terraformot és az Ansible-t, és konfigurálja a telepítőt.
A vezérlősík biztonságossá tétele
A vezérlősík az SAP Automation-keretrendszer legkritikusabb része. Fontos, hogy biztonságossá tegye a vezérlősíkot. Az alábbi lépésekkel biztonságossá teheti a vezérlősíkot. Ha a vezérlősíkot külső virtuális géppel vagy a felhőhéj használatával hozta létre, a vezérlősíkot úgy kell biztonságossá tenni, hogy privát végpontokat implementál a tárfiókokhoz és a kulcstartókhoz.
A szkripttel sync_deployer.sh
átmásolhatja a vezérlősík konfigurációs fájljait a központi virtuális gépre. Jelentkezzen be a központi virtuális gépre, és futtassa a következő parancsokat:
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
../sap-automation/deploy/scripts/sync_deployer.sh --storageaccountname mgtneweeutfstate### --state_subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Győződjön meg arról, hogy a use_private_endpoint
változó a konfigurációs fájlokban DEPLOYER
LIBRARY
van beállítvatrue
. Győződjön meg arról is, hogy public_network_access_enabled
a konfigurációs fájlokban be DEPLOYER
van állítvafalse
.
# 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
Futtassa újra a vezérlősík üzembe helyezését a tárfiókok és kulcstartók privát végpontjainak engedélyezéséhez.
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
A webalkalmazás előkészítése
Ez a lépés nem kötelező. Ha azt szeretné, hogy egy böngészőalapú UX segítse az SAP számítási feladatok zónáinak és rendszereinek konfigurálását, futtassa az alábbi parancsokat a vezérlősík üzembe helyezése előtt.
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