Menyebarkan bidang kontrol
Penyebaran sarana kontrol untuk Kerangka Kerja Otomatisasi Penyebaran SAP terdiri dari:
- Penyebar
- pustaka SAP
Menyiapkan info masuk penyebaran
Kerangka Kerja Otomatisasi Penyebaran SAP menggunakan perwakilan layanan untuk penyebaran. Untuk membuat perwakilan layanan untuk penyebaran sarana kontrol, gunakan akun yang memiliki izin untuk membuat perwakilan layanan:
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscriptionID>" --name="<environment>-Deployment-Account"
Penting
Nama perwakilan layanan harus unik.
Rekam nilai output dari perintah:
- appId
- kata sandi
- penyewa
Secara opsional, tetapkan izin berikut ke perwakilan layanan:
az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscriptionID>
Jika Anda ingin menyediakan peran Administrator Akses Pengguna yang dilingkup ke grup sumber daya saja, gunakan perintah berikut:
az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>
Menyebarkan bidang kontrol
Semua artefak yang diperlukan untuk menyebarkan sarana kontrol terletak di repositori GitHub.
Bersiaplah untuk penyebaran sarana kontrol dengan mengkloning repositori menggunakan perintah berikut:
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
File MGMT-WEEU-DEP00-INFRASTRUCTURE.tfvars
konfigurasi penyebar sampel terletak di ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/DEPLOYER/MGMT-WEEU-DEP00-INFRASTRUCTURE
folder .
Contoh file MGMT-WEEU-SAP_LIBRARY.tfvars
konfigurasi pustaka SAP terletak di ~/Azure_SAP_Automated_Deployment/samples/Terraform/WORKSPACES/LIBRARY/MGMT-WEEU-SAP_LIBRARY
folder .
Anda dapat menyalin file konfigurasi sampel untuk mulai menguji kerangka kerja otomatisasi penyebaran.
File Terraform minimal untuk DEPLOYER
mungkin terlihat seperti contoh ini:
# 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
Perhatikan lokasi file variabel Terraform untuk pengeditan di masa mendatang selama penyebaran.
File Terraform minimal untuk LIBRARY
mungkin terlihat seperti contoh ini:
# 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
Perhatikan lokasi file variabel Terraform untuk pengeditan di masa mendatang selama penyebaran.
Jalankan perintah berikut untuk membuat penyebar dan pustaka SAP. Perintah menambahkan detail perwakilan layanan ke brankas kunci penyebaran.
Atur variabel lingkungan untuk perwakilan layanan:
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
export ARM_CLIENT_ID="<appId>"
export ARM_CLIENT_SECRET="<password>"
export ARM_TENANT_ID="<tenantId>"
Jalankan perintah berikut untuk menerapkan sarana kontrol:
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}"
Mengonfigurasi komputer virtual secara manual sebagai penyebar SDAF menggunakan Azure Bastion
Untuk menyambungkan ke penyebar:
Masuk ke portal Azure.
Buka grup sumber daya yang berisi komputer virtual penyebar (VM).
Koneksi ke VM dengan menggunakan Azure Bastion.
Nama pengguna default adalah azureadm.
Pilih Kunci Privat SSH dari Azure Key Vault.
Pilih langganan yang berisi sarana kontrol.
Pilih brankas kunci penyebar.
Dari daftar rahasia, pilih rahasia yang diakhir dengan -sshkey.
Sambungkan ke VM.
Jalankan skrip berikut untuk mengonfigurasi penyebar:
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
Skrip menginstal Terraform dan Ansible dan mengonfigurasi penyebar.
Mengonfigurasi komputer virtual secara manual sebagai penyebar SDAF
Koneksi ke VM penyebar dari komputer yang dapat menjangkau jaringan virtual Azure.
Untuk menyambungkan ke penyebar:
Masuk ke portal Azure.
Pilih atau cari Brankas kunci.
Pada halaman Brankas kunci, temukan brankas kunci penyebar. Nama dimulai dengan
MGMT[REGION]DEP00user
. Filter menurut Grup sumber daya atau Lokasi, jika perlu.Pada bagian Pengaturan di panel kiri, pilih Rahasia.
Temukan dan pilih rahasia yang berisi sshkey. Mungkin terlihat seperti
MGMT-[REGION]-DEP00-sshkey
.Di halaman rahasia, pilih versi saat ini. Kemudian salin nilai Rahasia.
Buka editor teks biasa. Salin nilai rahasia.
Simpan file tempat Anda menyimpan kunci SSH. Contohnya
C:\Users\<your-username>\.ssh
.Simpan file. Jika Anda diminta untuk Menyimpan sebagai jenis, pilih Semua file jika SSH bukan pilihan. Misalnya, gunakan
deployer.ssh
.Koneksi ke VM penyebar melalui klien SSH apa pun, seperti Visual Studio Code. Gunakan alamat IP privat penyebar dan kunci SSH yang Anda unduh. Untuk petunjuk tentang cara menyambungkan ke penyebar dengan menggunakan Visual Studio Code, lihat Koneksi ke penyebar dengan menggunakan Visual Studio Code. Jika Anda menggunakan PuTTY, konversikan file kunci SSH terlebih dahulu dengan menggunakan PuTTYGen.
Catatan
Nama pengguna default adalah azureadm.
Konfigurasikan penyebar dengan menggunakan skrip berikut:
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
Skrip menginstal Terraform dan Ansible dan mengonfigurasi penyebar.
Mengamankan sarana kontrol
Sarana kontrol adalah bagian paling penting dari kerangka kerja otomatisasi SAP. Penting untuk mengamankan sarana kontrol. Langkah-langkah berikut membantu Anda mengamankan sarana kontrol. Jika Anda telah membuat sarana kontrol menggunakan komputer virtual eksternal atau dengan menggunakan cloud shell, Anda harus mengamankan sarana kontrol dengan menerapkan titik akhir privat untuk akun penyimpanan dan brankas kunci.
Anda dapat menggunakan sync_deployer.sh
skrip untuk menyalin file konfigurasi sarana kontrol ke VM penyebar. Masuk ke VM penyebar dan jalankan perintah berikut:
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
../sap-automation/deploy/scripts/sync_deployer.sh --storageaccountname mgtneweeutfstate### --state_subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Pastikan variabel use_private_endpoint
diatur ke true
dalam DEPLOYER
file konfigurasi dan LIBRARY
. Pastikan juga diatur public_network_access_enabled
ke false
DEPLOYER
dalam file konfigurasi.
# 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
Jalankan ulang penyebaran sarana kontrol untuk mengaktifkan titik akhir privat untuk akun penyimpanan dan brankas kunci.
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
Siapkan aplikasi web
Langkah ini bersifat opsional. Jika Anda ingin UX berbasis browser membantu konfigurasi zona dan sistem beban kerja SAP, jalankan perintah berikut sebelum Anda menyebarkan sarana kontrol.
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