Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wdrożenie płaszczyzny sterowania dla programu SAP Deployment Automation Framework składa się z następujących elementów:
- Narzędzie do wdrażania
- Biblioteka SAP
Przygotowywanie poświadczeń wdrożenia
Platforma SAP Deployment Automation Framework używa jednostek usługi na potrzeby wdrożeń. Aby utworzyć jednostkę usługi dla wdrożenia płaszczyzny sterowania, użyj konta z uprawnieniami do tworzenia jednostek usługi:
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscriptionID>" --name="<environment>-Deployment-Account"
Ważne
Nazwa jednostki usługi musi być unikatowa.
Zapisz wartości wyjściowe z polecenia :
- Identyfikator aplikacji
- hasło
- najemca
Opcjonalnie przypisz następujące uprawnienia do jednostki usługi:
az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscriptionID>
Jeśli chcesz nadać rolę Administratora dostępu użytkowników, ograniczając zakres do grupy zasobów, użyj następującego polecenia:
az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>
Wdrażanie płaszczyzny sterowania
Wszystkie artefakty wymagane do wdrożenia płaszczyzny sterowania znajdują się w repozytoriach GitHub.
Przygotuj się do wdrożenia płaszczyzny sterowania, klonując repozytoria przy użyciu następujących poleceń:
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
Przykładowy plik MGMT-WEEU-DEP00-INFRASTRUCTURE.tfvars konfiguracji narzędzia wdrażania znajduje się w folderze ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/DEPLOYER/MGMT-WEEU-DEP00-INFRASTRUCTURE .
Przykładowy plik MGMT-WEEU-SAP_LIBRARY.tfvars konfiguracji biblioteki SAP znajduje się w folderze ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/LIBRARY/MGMT-WEEU-SAP_LIBRARY .
Możesz skopiować przykładowe pliki konfiguracji, aby rozpocząć testowanie struktury automatyzacji wdrażania.
Minimalny plik Terraform dla DEPLOYER tego pliku może wyglądać następująco:
# 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 = true
# 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 = true
# 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 = false
Zanotuj lokalizacje plików zmiennych programu Terraform na potrzeby przyszłych edycji podczas wdrażania.
Minimalny plik Terraform dla LIBRARY może wyglądać następująco:
# 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 = true
Zanotuj lokalizacje plików zmiennych programu Terraform na potrzeby przyszłych edycji podczas wdrażania.
Uruchom następujące polecenie, aby utworzyć narzędzie wdrażania i bibliotekę SAP. Polecenie dodaje szczegóły obiektu zabezpieczeń usługi do magazynu kluczy związanego z wdrażaniem.
Ustaw zmienne środowiskowe dla jednostki usługi:
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
export ARM_CLIENT_ID="<appId>"
export ARM_CLIENT_SECRET="<password>"
export ARM_TENANT_ID="<tenantId>"
Uruchom następujące polecenie, aby wdrożyć płaszczyznę sterowania:
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}"
Ręczne konfigurowanie maszyny wirtualnej jako narzędzia do wdrażania sdAF przy użyciu usługi Azure Bastion
Aby nawiązać połączenie z modułem wdrażania:
Zaloguj się do portalu Azure.
Przejdź do grupy zasobów zawierającej maszynę wirtualną "deployer".
Nawiąż połączenie z maszyną wirtualną przy użyciu usługi Azure Bastion.
Domyślna nazwa użytkownika to azureadm.
Wybierz pozycję Klucz prywatny SSH z usługi Azure Key Vault.
Wybierz subskrypcję zawierającą płaszczyznę sterowania.
Wybierz magazyn kluczy dla wdrożeniowca.
Z listy sekretów wybierz sekret kończący się na -sshkey.
Nawiąż połączenie z maszyną wirtualną.
Uruchom następujący skrypt, aby skonfigurować narzędzie do wdrażania:
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
Skrypt instaluje program Terraform i rozwiązanie Ansible oraz konfiguruje narzędzie do wdrażania.
Ręczne konfigurowanie maszyny wirtualnej jako narzędzia do wdrażania SDAF
Nawiąż połączenie z maszyną wirtualną modułu wdrażania z komputera, który może nawiązać połączenie z siecią wirtualną platformy Azure.
Aby nawiązać połączenie z modułem wdrażania:
Zaloguj się do portalu Azure.
Wybierz lub wyszukaj magazyny kluczy.
Na stronie Magazyn kluczy znajdź magazyn kluczy używany do wdrażania. Nazwa zaczyna się od
MGMT[REGION]DEP00user. W razie potrzeby przefiltruj według grupy zasobów lub lokalizacji.W sekcji Ustawienia w okienku po lewej stronie wybierz pozycję Wpisy tajne.
Znajdź i wybierz tajemnicę zawierającą klucz SSH. Może to wyglądać następująco:
MGMT-[REGION]-DEP00-sshkey.Na stronie sekretnych wybierz bieżącą wersję. Następnie skopiuj tajną wartość.
Otwórz edytor zwykłego tekstu. Skopiuj tajną wartość.
Zapisz plik, w którym zachowasz klucze SSH. Przykładem jest
C:\Users\<your-username>\.ssh.Zapisz plik. Jeśli pojawi się monit o Zapisz jako typ, wybierz opcję Wszystkie pliki, jeśli SSH nie jest dostępny. Użyj na przykład nazwy
deployer.ssh.Nawiąż połączenie z maszyną wirtualną wdrażającą za pośrednictwem dowolnego klienta SSH, takiego jak Visual Studio Code. Użyj prywatnego adresu IP wdrażającego oraz klucza SSH, który pobrałeś. Aby uzyskać instrukcje dotyczące nawiązywania połączenia z modułem wdrażania przy użyciu programu Visual Studio Code, zobacz Connect to the deployer by using Visual Studio Code (Nawiązywanie połączenia z modułem wdrażania przy użyciu programu Visual Studio Code). Jeśli używasz programu PuTTY, najpierw przekonwertuj plik klucza SSH przy użyciu programu PuTTYGen.
Uwaga
Domyślna nazwa użytkownika to azureadm.
Skonfiguruj narzędzie do wdrażania przy użyciu następującego skryptu:
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
Skrypt instaluje program Terraform i rozwiązanie Ansible oraz konfiguruje narzędzie do wdrażania.
Zabezpieczanie płaszczyzny sterowania
Płaszczyzna sterowania jest najbardziej krytyczną częścią struktury automatyzacji SAP. Ważne jest, aby zabezpieczyć płaszczyznę sterowania. Poniższe kroki ułatwiają zabezpieczenie płaszczyzny sterowania. Jeśli utworzyłeś płaszczyznę sterowania przy użyciu zewnętrznej maszyny wirtualnej lub Cloud Shell, należy zabezpieczyć tę płaszczyznę poprzez implementację prywatnych punktów końcowych dla kont magazynowych i magazynów kluczy.
Możesz użyć skryptu sync_deployer.sh , aby skopiować pliki konfiguracji płaszczyzny sterowania do maszyny wirtualnej wdrażającej. Zaloguj się do maszyny wirtualnej modułu wdrażania i uruchom następujące polecenia:
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
../sap-automation/deploy/scripts/sync_deployer.sh --storageaccountname mgtneweeutfstate### --state_subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Upewnij się, że zmienna use_private_endpoint jest ustawiona na true w plikach DEPLOYER i LIBRARY konfiguracji. Upewnij się również, że public_network_access_enabled jest ustawione na false w plikach konfiguracji DEPLOYER.
# 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
Uruchom ponownie wdrożenie warstwy kontrolnej, aby włączyć prywatne punkty końcowe dla kont magazynu i usług kluczy.
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
Przygotowywanie aplikacji internetowej
Ten krok jest opcjonalny. Jeśli chcesz, aby środowisko użytkownika oparte na przeglądarce pomogło w konfiguracji stref obciążeń i systemów SAP, uruchom następujące polecenia przed wdrożeniem płaszczyzny sterowania.
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