Bagikan melalui


Menyebarkan bidang kontrol

Penyebaran sarana kontrol untuk Kerangka Kerja Otomatisasi Penyebaran SAP terdiri dari:

  • Penyebar
  • pustaka SAP

Diagram that shows the control plane.

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:

  1. Masuk ke portal Azure.

  2. Buka grup sumber daya yang berisi komputer virtual penyebar (VM).

  3. Koneksi ke VM dengan menggunakan Azure Bastion.

  4. Nama pengguna default adalah azureadm.

  5. Pilih Kunci Privat SSH dari Azure Key Vault.

  6. Pilih langganan yang berisi sarana kontrol.

  7. Pilih brankas kunci penyebar.

  8. Dari daftar rahasia, pilih rahasia yang diakhir dengan -sshkey.

  9. 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:

  1. Masuk ke portal Azure.

  2. Pilih atau cari Brankas kunci.

  3. Pada halaman Brankas kunci, temukan brankas kunci penyebar. Nama dimulai dengan MGMT[REGION]DEP00user. Filter menurut Grup sumber daya atau Lokasi, jika perlu.

  4. Pada bagian Pengaturan di panel kiri, pilih Rahasia.

  5. Temukan dan pilih rahasia yang berisi sshkey. Mungkin terlihat seperti MGMT-[REGION]-DEP00-sshkey.

  6. Di halaman rahasia, pilih versi saat ini. Kemudian salin nilai Rahasia.

  7. Buka editor teks biasa. Salin nilai rahasia.

  8. Simpan file tempat Anda menyimpan kunci SSH. Contohnya C:\Users\<your-username>\.ssh.

  9. Simpan file. Jika Anda diminta untuk Menyimpan sebagai jenis, pilih Semua file jika SSH bukan pilihan. Misalnya, gunakan deployer.ssh.

  10. 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

Langkah selanjutnya