Menggunakan Kerangka Kerja Otomatisasi Penyebaran SAP dari Layanan Azure DevOps
Azure DevOps menyederhanakan proses penyebaran dengan menyediakan alur yang dapat Anda jalankan untuk melakukan penyebaran infrastruktur dan konfigurasi dan aktivitas penginstalan SAP.
Anda dapat menggunakan Azure Repos untuk menyimpan file konfigurasi Anda dan menggunakan Azure Pipelines untuk menyebarkan dan mengonfigurasi infrastruktur dan aplikasi SAP.
Daftar untuk Layanan Azure DevOps
Untuk menggunakan Azure DevOps Services, Anda memerlukan organisasi Azure DevOps. Sebuah organisasi digunakan untuk menghubungkan kelompok proyek terkait. Gunakan akun kerja atau sekolah Anda untuk menyambungkan organisasi Anda secara otomatis ke ID Microsoft Entra Anda. Untuk membuat akun, buka Azure DevOps dan masuk atau buat akun baru.
Mengonfigurasi Layanan Azure DevOps untuk Kerangka Kerja Otomatisasi Penyebaran SAP
Anda dapat menggunakan skrip berikut untuk melakukan penginstalan dasar Azure DevOps Services for SAP Deployment Automation Framework.
Buka PowerShell ISE dan salin skrip berikut dan perbarui parameter agar sesuai dengan lingkungan Anda.
$Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
$Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
$Env:SDAF_CONTROL_PLANE_CODE = "MGMT"
$Env:SDAF_ControlPlaneSubscriptionID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
$Env:MSI_OBJECT_ID = $null
$branchName = "main"
$UniqueIdentifier = "SDAF" + $ShortCode
if ($Env:ARM_TENANT_ID.Length -eq 0) {
az login --output none --only-show-errors --scope https://graph.microsoft.com//.default
}
else {
az login --output none --tenant $Env:ARM_TENANT_ID --only-show-errors --scope https://graph.microsoft.com//.default
}
az config set extension.use_dynamic_install=yes_without_prompt --only-show-errors
az extension add --name azure-devops --only-show-errors
$differentTenant = Read-Host "Is your Azure DevOps organization hosted in a different tenant than the one you are currently logged in to? y/n"
if ($differentTenant -eq 'y') {
$env:AZURE_DEVOPS_EXT_PAT = Read-Host "Please enter your Personal Access Token (PAT) with permissions to add new projects, manage agent pools to the Azure DevOps organization $Env:ADO_Organization"
try {
az devops project list
}
catch {
$_
}
}
$confirmationWebAppDeployment = Read-Host "Do you want to use the Web Application for editing the configuration files (recommended) y/n?"
if ($confirmationWebAppDeployment -eq 'y') {
$Env:SDAF_WEBAPP = "true"
$confirmation = Read-Host "Do you want to create a new Application registration (needed for the Web Application) y/n?"
if ($confirmation -eq 'y') {
$Env:SDAF_APP_NAME = "SDAF " + $UniqueIdentifier + " SDAF Control Plane"
}
else {
$Env:SDAF_APP_NAME = Read-Host "Please provide the Application registration name"
}
}
else {
$Env:SDAF_WEBAPP = "false"
}
$Env:SDAF_AuthenticationMethod = 'Managed Identity'
$confirmationDeployment = Read-Host "Do you want to use Managed Identities for the deployment (recommended) y/n?"
if ($confirmationDeployment -eq 'n') {
$Env:SDAF_AuthenticationMethod = 'Service Principal'
$confirmation = Read-Host "Do you want to create a new Service Principal for the Control plane y/n?"
if ($confirmation -eq 'y') {
$Env:SDAF_MGMT_SPN_NAME = "SDAF " + $UniqueIdentifier + $Env:SDAF_CONTROL_PLANE_CODE + " SPN"
}
else {
$Env:SDAF_MGMT_SPN_NAME = Read-Host "Please provide the Control Plane Service Principal Name"
}
}
if ( $PSVersionTable.Platform -eq "Unix") {
if ( Test-Path "SDAF") {
}
else {
$sdaf_path = New-Item -Path "SDAF" -Type Directory
}
}
else {
$sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
if ( Test-Path $sdaf_path) {
}
else {
New-Item -Path $sdaf_path -Type Directory
}
}
Set-Location -Path $sdaf_path
if ( Test-Path "New-SDAFDevopsProject.ps1") {
if ( $PSVersionTable.Platform -eq "Unix") {
Remove-Item "New-SDAFDevopsProject.ps1"
}
else {
Remove-Item ".\New-SDAFDevopsProject.ps1"
}
}
Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsProject.ps1 -OutFile New-SDAFDevopsProject.ps1
if ( $PSVersionTable.Platform -eq "Unix") {
Unblock-File ./New-SDAFDevopsProject.ps1
./New-SDAFDevopsProject.ps1
}
else {
Unblock-File .\New-SDAFDevopsProject.ps1
.\New-SDAFDevopsProject.ps1
}
Jalankan skrip dan ikuti instruksinya. Skrip membuka jendela browser untuk autentikasi dan untuk melakukan tugas di proyek Azure DevOps.
Anda dapat memilih untuk menjalankan kode langsung dari GitHub atau Anda dapat mengimpor salinan kode ke dalam proyek Azure DevOps Anda.
Untuk mengonfirmasi bahwa proyek telah dibuat, buka portal Azure DevOps dan pilih proyek. Pastikan bahwa repositori diisi dan alur dibuat.
Penting
Jalankan langkah-langkah berikut di stasiun kerja lokal Anda. Pastikan juga bahwa Anda memiliki Azure CLI terbaru yang diinstal dengan menjalankan az upgrade
perintah .
Mengonfigurasi artefak Azure DevOps Services untuk zona beban kerja baru
Gunakan skrip berikut untuk menyebarkan artefak yang diperlukan untuk mendukung zona beban kerja baru. Proses ini membuat grup variabel dan koneksi layanan di Azure DevOps dan, secara opsional, perwakilan layanan penyebaran.
Buka PowerShell ISE dan salin skrip berikut dan perbarui parameter agar sesuai dengan lingkungan Anda.
$Env:SDAF_ADO_ORGANIZATION = "https://dev.azure.com/ORGANIZATIONNAME"
$Env:SDAF_ADO_PROJECT = "SAP Deployment Automation Framework"
$Env:SDAF_WorkloadZoneSubscriptionID = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
$Env:ARM_TENANT_ID="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
if ( $PSVersionTable.Platform -eq "Unix") {
if ( Test-Path "SDAF") {
}
else {
$sdaf_path = New-Item -Path "SDAF" -Type Directory
}
}
else {
$sdaf_path = Join-Path -Path $Env:HOMEDRIVE -ChildPath "SDAF"
if ( Test-Path $sdaf_path) {
}
else {
New-Item -Path $sdaf_path -Type Directory
}
}
$branchName = "main"
Set-Location -Path $sdaf_path
if ( Test-Path "New-SDAFDevopsWorkloadZone.ps1") {
remove-item .\New-SDAFDevopsWorkloadZone.ps1
}
Invoke-WebRequest -Uri https://raw.githubusercontent.com/Azure/sap-automation/$branchName/deploy/scripts/New-SDAFDevopsWorkloadZone.ps1 -OutFile .\New-SDAFDevopsWorkloadZone.ps1 ; .\New-SDAFDevopsWorkloadZone.ps1
Membuat konfigurasi sarana kontrol sampel
Anda dapat menjalankan Create Sample Deployer Configuration
alur untuk membuat konfigurasi sampel untuk sarana kontrol. Saat berjalan, pilih wilayah Azure yang sesuai. Anda juga dapat mengontrol apakah Anda ingin menyebarkan Azure Firewall dan Azure Bastion.
Konfigurasi manual Azure DevOps Services untuk Kerangka Kerja Otomatisasi Penyebaran SAP
Anda dapat mengonfigurasi Azure DevOps Services untuk Kerangka Kerja Otomatisasi Penyebaran SAP secara manual.
Membuat proyek baru
Anda dapat menggunakan Azure Repos untuk menyimpan kode dari repositori GitHub otomatisasi sap dan file konfigurasi lingkungan.
Buka Azure DevOps dan buat proyek baru dengan memilih Proyek Baru dan masukkan detail proyek. Proyek ini berisi repositori kontrol sumber Azure Repos dan Azure Pipelines untuk melakukan aktivitas penyebaran.
Jika Anda tidak melihat Proyek Baru, pastikan Anda memiliki izin untuk membuat proyek baru di organisasi.
Catat URL proyek.
Mengimpor repositori
Mulailah dengan mengimpor repositori GitHub SAP Deployment Automation Framework Bootstrap ke Azure Repos.
Buka bagian Repositori dan pilih Impor repositori. https://github.com/Azure/sap-automation-bootstrap.git
Impor repositori ke Azure DevOps. Untuk informasi selengkapnya, lihat Mengimpor repositori.
Jika Anda tidak dapat mengimpor repositori, Anda dapat membuat repositori secara manual. Kemudian Anda dapat mengimpor konten dari repositori SAP Deployment Automation Framework GitHub Bootstrap ke dalamnya.
Membuat repositori untuk impor manual
Hanya lakukan langkah ini jika Anda tidak dapat mengimpor repositori secara langsung.
Untuk membuat repositori ruang kerja, di bagian Repos , di bawah Pengaturan proyek, pilih Buat.
Pilih repositori, masukkan Git, dan berikan nama untuk repositori. Misalnya, gunakan Repositori Konfigurasi SAP.
Mengklon repositori
Untuk menyediakan kemampuan pengeditan konten yang lebih komprehensif, Anda dapat mengkloning repositori ke folder lokal dan mengedit konten secara lokal.
Untuk mengkloning repositori ke folder lokal, pada bagian Repos portal, di bawah File, pilih Kloning. Untuk informasi selengkapnya, lihat Mengkloning repositori.
Mengimpor konten repositori secara manual dengan menggunakan klon lokal
Anda juga dapat mengunduh konten secara manual dari repositori Kerangka Kerja Automasi Penyebaran SAP dan menambahkannya ke klon lokal repositori Azure DevOps Anda.
https://github.com/Azure/SAP-automation-samples
Buka repositori dan unduh konten repositori sebagai file .zip. Pilih Kode dan pilih Unduh ZIP.
Salin konten dari file .zip ke folder akar klon lokal Anda.
Buka folder lokal di Visual Studio Code. Anda akan melihat bahwa perubahan perlu disinkronkan oleh indikator oleh ikon kontrol sumber yang diperlihatkan di sini.
Pilih ikon kontrol sumber dan berikan pesan tentang perubahan tersebut. Misalnya, masukkan Impor dari GitHub dan pilih Ctrl+Enter untuk menerapkan perubahan. Selanjutnya, pilih Sinkronkan Perubahan untuk menyinkronkan perubahan kembali ke repositori.
Pilih sumber untuk kode Terraform dan Ansible
Anda dapat menjalankan kode Kerangka Kerja Automasi Penyebaran SAP langsung dari GitHub atau Anda dapat mengimpornya secara lokal.
Menjalankan kode dari repositori lokal
Jika Anda ingin menjalankan kode Kerangka Kerja Automasi Penyebaran SAP dari proyek Azure DevOps lokal, Anda perlu membuat repositori kode terpisah dan repositori konfigurasi dalam proyek Azure DevOps:
- Nama repositori konfigurasi:
Same as the DevOps Project name
. Sumbernya adalahhttps://github.com/Azure/sap-automation-bootstrap.git
. - Nama repositori kode:
sap-automation
. Sumbernya adalahhttps://github.com/Azure/sap-automation.git
. - Nama sampel dan repositori templat:
sap-samples
. Sumbernya adalahhttps://github.com/Azure/sap-automation-samples.git
.
Jalankan kode langsung dari GitHub
Jika Anda ingin menjalankan kode langsung dari GitHub, Anda perlu memberikan kredensial untuk Azure DevOps agar dapat menarik konten dari GitHub.
Membuat koneksi layanan GitHub
Untuk menarik kode dari GitHub, Anda memerlukan koneksi layanan GitHub. Untuk informasi selengkapnya, lihat Mengelola koneksi layanan.
Untuk membuat koneksi layanan, buka Proyek Pengaturan dan di bawah bagian Alur, buka Koneksi layanan.
Pilih GitHub sebagai jenis koneksi layanan. Pilih Azure Pipelines di menu dropdown Konfigurasi OAuth.
Pilih Otorisasi untuk masuk ke GitHub.
Masukkan nama koneksi layanan, misalnya, SDAF Koneksi ion ke GitHub. Pastikan bahwa kotak centang Berikan izin akses ke semua alur dipilih. Pilih Simpan untuk menyimpan koneksi layanan.
Menyiapkan aplikasi web
Kerangka kerja otomatisasi secara opsional memprovisikan aplikasi web sebagai bagian dari sarana kontrol untuk membantu zona beban kerja SAP dan file konfigurasi sistem. Jika ingin menggunakan aplikasi web, Anda harus terlebih dahulu membuat pendaftaran aplikasi untuk tujuan autentikasi. Buka Azure Cloud Shell dan jalankan perintah berikut.
Ganti MGMT
dengan lingkungan Anda, seperlunya.
echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json
TF_VAR_app_registration_app_id=$(az ad app create --display-name MGMT-webapp-registration --enable-id-token-issuance true --sign-in-audience AzureADMyOrg --required-resource-access @manifest.json --query "appId" | tr -d '"')
echo $TF_VAR_app_registration_app_id
az ad app credential reset --id $TF_VAR_app_registration_app_id --append --query "password"
rm manifest.json
Simpan ID pendaftaran aplikasi dan nilai kata sandi untuk digunakan nanti.
Membuat Azure Pipelines
Azure Pipelines diimplementasikan sebagai file YAML. Mereka disimpan di folder deploy/pipelines di repositori.
Alur penyebaran sarana kontrol
Buat alur penyebaran sarana kontrol. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | pipelines/01-deploy-control-plane.yml |
Nama | Penyebaran sarana kontrol |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindahkan dari menu elipsis di sebelah kanan dan ganti nama alur sebagai penyebaran sarana kontrol.
Alur penyebaran zona beban kerja SAP
Buat alur zona beban kerja SAP. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | pipelines/02-sap-workload-zone.yml |
Nama | Penyebaran zona beban kerja SAP |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindahkan dari menu elipsis di sebelah kanan dan ganti nama alur sebagai penyebaran zona beban kerja SAP.
Alur penyebaran sistem SAP
Buat alur penyebaran sistem SAP. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | pipelines/03-sap-system-deployment.yml |
Nama | Penyebaran sistem SAP (infrastruktur) |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindah dari menu elipsis di sebelah kanan dan ganti nama alur sebagai penyebaran sistem SAP (infrastruktur).
Alur akuisisi perangkat lunak SAP
Buat alur akuisisi perangkat lunak SAP. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | deploy/pipelines/04-sap-software-download.yml |
Nama | Akuisisi perangkat lunak SAP |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindah dari menu elipsis di sebelah kanan dan ganti nama alur sebagai akuisisi perangkat lunak SAP.
Konfigurasi SAP dan alur instalasi perangkat lunak
Buat konfigurasi SAP dan alur penginstalan perangkat lunak. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | pipelines/05-DB-and-SAP-installation.yml |
Nama | Konfigurasi dan instalasi SAP |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindahkan dari menu elipsis di sebelah kanan dan ganti nama alur sebagai konfigurasi SAP dan penginstalan perangkat lunak.
Alur penghapusan penyebaran
Buat alur penghapusan penyebaran. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | pipelines/10-remover-terraform.yml |
Nama | Penghapusan penyebaran |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindahkan dari menu elipsis di sebelah kanan dan ganti nama alur sebagai Penghapusan penyebaran.
Alur penghapusan sarana kontrol
Buat alur penghapusan penyebaran sarana kontrol. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | pipelines/12-remove-control-plane.yml |
Nama | Penghapusan sarana kontrol |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindahkan dari menu elipsis di sebelah kanan dan ganti nama alur sebagai Penghapusan sarana kontrol.
Alur penghapusan penyebaran dengan menggunakan Azure Resource Manager
Buat alur penghapusan penyebaran Azure Resource Manager. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | pipelines/11-remover-arm-fallback.yml |
Nama | Penghapusan penyebaran menggunakan Azure Resource Manager |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindah dari menu elipsis di sebelah kanan dan ganti nama alur sebagai Penghapusan penyebaran menggunakan prosesor ARM.
Catatan
Hanya gunakan alur ini sebagai upaya terakhir. Menghapus hanya grup sumber daya yang meninggalkan sisa-sisa yang mungkin mempersulit penyebaran ulang.
Alur pembaruan repositori
Buat alur updater repositori. Di bawah bagian Alur , pilih Alur Baru. Pilih Azure Repos Git sebagai sumber untuk kode Anda. Konfigurasikan alur Anda untuk menggunakan file YAML Azure Pipelines yang sudah ada. Tentukan alur dengan pengaturan berikut:
Pengaturan | Nilai |
---|---|
Repo | "Repositori akar" (sama dengan nama proyek) |
Cabang | utama |
Jalur | pipelines/20-update-ado-repository.yml |
Nama | Pembaruan repositori |
Simpan alurnya. Untuk melihat Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Pilih Ganti Nama/Pindahkan dari menu elipsis di sebelah kanan dan ganti nama alur sebagai Pembaruan repositori.
Alur ini harus digunakan ketika ada pembaruan di repositori sap-automation yang ingin Anda gunakan.
Mengimpor tugas pembersihan dari Visual Studio Marketplace
Alur menggunakan tugas kustom untuk melakukan aktivitas penghapusan pasca penyebaran. Anda dapat menginstal tugas kustom dari Post Build Cleanup. Instal ke organisasi Azure DevOps Anda sebelum Anda menjalankan alur.
Persiapan untuk agen yang dihost sendiri
Buat kumpulan agen dengan masuk ke Pengaturan Organisasi. Di bawah bagian Alur, pilih Kumpulan>Agen Tambahkan Kumpulan. Pilih Dihost sendiri sebagai jenis kumpulan. Beri nama kumpulan agar selaras dengan lingkungan sarana kontrol. Misalnya, gunakan
MGMT-WEEU-POOL
. Pastikan bahwa Berikan izin akses ke semua alur dipilih dan pilih Buat untuk membuat kumpulan.Masuk dengan akun pengguna yang Anda rencanakan untuk digunakan di organisasi Azure DevOps Anda.
Dari beranda Anda, buka pengaturan pengguna Anda dan pilih Token akses pribadi.
Buat token akses pribadi dengan pengaturan ini:
Kumpulan Agen: Pilih Baca & kelola.
Build: Pilih Baca & jalankan.
Kode: Pilih Baca &tulis.
Grup Variabel: Pilih Baca, buat, & kelola.
Tuliskan nilai token yang dibuat.
Definisi variabel
Alur penyebaran dikonfigurasi untuk menggunakan sekumpulan nilai parameter yang telah ditentukan sebelumnya yang ditentukan dengan menggunakan grup variabel.
Variabel umum
Variabel umum digunakan oleh semua alur penyebaran. Mereka disimpan dalam grup variabel yang disebut SDAF-General
.
Buat grup variabel baru bernama SDAF-General
dengan menggunakan halaman Pustaka di bagian Alur . Tambahkan variabel berikut:
Variabel | Value | Catatan |
---|---|---|
Deployment_Configuration_Path | RUANG KERJA | Untuk menguji konfigurasi sampel, gunakan samples/WORKSPACES alih-alih WORKSPACES. |
Cabang | utama | |
S-Nama Pengguna | <SAP Support user account name> |
|
S-Kata Sandi | <SAP Support user password> |
Ubah jenis variabel menjadi rahasia dengan memilih ikon kunci. |
tf_version |
1.6.0 | Versi Terraform yang akan digunakan. Lihat Unduhan Terraform. |
Simpan variabel.
Atau, Anda dapat menggunakan Azure DevOps CLI untuk menyiapkan grup.
s-user="<SAP Support user account name>"
s-password="<SAP Support user password>"
az devops login
az pipelines variable-group create --name SDAF-General --variables ANSIBLE_HOST_KEY_CHECKING=false Deployment_Configuration_Path=WORKSPACES Branch=main S-Username=$s-user S-Password=$s-password tf_version=1.3.0 --output yaml
Ingatlah untuk menetapkan izin untuk semua alur dengan menggunakan izin Alur.
Variabel khusus lingkungan
Karena setiap lingkungan mungkin memiliki kredensial penyebaran yang berbeda, Anda perlu membuat grup variabel per lingkungan. Misalnya, gunakan SDAF-MGMT
,SDAF-DEV
, dan SDAF-QA
.
Buat grup variabel baru bernama SDAF-MGMT
untuk lingkungan sarana kontrol dengan menggunakan halaman Pustaka di bagian Alur . Tambahkan variabel berikut:
Variabel | Value | Catatan |
---|---|---|
Agen | Azure Pipelines atau nama kumpulan agen |
Kumpulan ini dibuat di langkah selanjutnya. |
CP_ARM_CLIENT_ID | Service principal application ID |
|
CP_ARM_OBJECT_ID | Service principal object ID |
|
CP_ARM_CLIENT_SECRET | Service principal password |
Ubah jenis variabel menjadi rahasia dengan memilih ikon kunci. |
CP_ARM_SUBSCRIPTION_ID | Target subscription ID |
|
CP_ARM_TENANT_ID | Tenant ID untuk perwakilan layanan |
|
AZURE_CONNECTION_NAME | Nama koneksi yang dibuat sebelumnya | |
sap_fqdn | Nama domain yang sepenuhnya memenuhi syarat SAP, misalnya, sap.contoso.net |
Hanya diperlukan jika DNS Privat tidak digunakan. |
FENCING_SPN_ID | Service principal application ID untuk agen anggar |
Diperlukan untuk penyebaran yang sangat tersedia yang menggunakan perwakilan layanan untuk agen anggar. |
FENCING_SPN_PWD | Service principal password untuk agen anggar |
Diperlukan untuk penyebaran yang sangat tersedia yang menggunakan perwakilan layanan untuk agen anggar. |
FENCING_SPN_TENANT | Service principal tenant ID untuk agen anggar |
Diperlukan untuk penyebaran yang sangat tersedia yang menggunakan perwakilan layanan untuk agen anggar. |
PAT | <Personal Access Token> |
Gunakan token pribadi yang ditentukan pada langkah sebelumnya. |
KUMPULAN | <Agent Pool name> |
Kumpulan agen yang digunakan untuk lingkungan ini. |
APP_REGISTRATION_APP_ID | App registration application ID |
Diperlukan jika menyebarkan aplikasi web. |
WEB_APP_CLIENT_SECRET | App registration password |
Diperlukan jika menyebarkan aplikasi web. |
SDAF_GENERAL_GROUP_ID | ID grup untuk grup SDAF-General | ID dapat diambil dari parameter variableGroupId URL saat mengakses grup variabel dengan menggunakan browser. Sebagai contoh: variableGroupId=8 . |
WORKLOADZONE_PIPELINE_ID | ID untuk SAP workload zone deployment alur |
ID dapat diambil dari parameter definitionId URL dari halaman alur di Azure DevOps. Sebagai contoh: definitionId=31 . |
SYSTEM_PIPELINE_ID | ID untuk SAP system deployment (infrastructure) alur |
ID dapat diambil dari parameter definitionId URL dari halaman alur di Azure DevOps. Sebagai contoh: definitionId=32 . |
Simpan variabel.
Ingatlah untuk menetapkan izin untuk semua alur dengan menggunakan izin Alur.
Saat Anda menggunakan aplikasi web, pastikan bahwa Layanan Build memiliki setidaknya izin Kontribusi.
Anda dapat menggunakan fungsionalitas klon untuk membuat grup variabel lingkungan berikutnya. APP_REGISTRATION_APP_ID, WEB_APP_CLIENT_SECRET, SDAF_GENERAL_GROUP_ID, WORKLOADZONE_PIPELINE_ID, dan SYSTEM_PIPELINE_ID hanya diperlukan untuk grup SDAF-MGMT.
Membuat koneksi layanan
Untuk menghapus sumber daya Azure, Anda memerlukan koneksi layanan Azure Resource Manager. Untuk informasi selengkapnya, lihat Mengelola koneksi layanan.
Untuk membuat koneksi layanan, buka Project Pengaturan. Di bawah bagian Alur, pilih Koneksi layanan.
Pilih Azure Resource Manager sebagai jenis koneksi layanan dan Perwakilan layanan (manual) sebagai metode autentikasi. Masukkan langganan target, yang biasanya merupakan langganan sarana kontrol. Masukkan detail perwakilan layanan. Pilih Verifikasi untuk memvalidasi kredensial. Untuk informasi selengkapnya tentang cara membuat perwakilan layanan, lihat Membuat perwakilan layanan.
Masukkan Nama koneksi layanan, misalnya, gunakan Connection to MGMT subscription
. Pastikan bahwa kotak centang Berikan izin akses ke semua alur dipilih. Pilih Verifikasi dan simpan untuk menyimpan koneksi layanan.
Izin
Sebagian besar alur menambahkan file ke Azure Repos dan karenanya memerlukan izin penarikan. Pada Project Pengaturan, di bawah bagian Repositori, pilih tab Keamanan dari repositori kode sumber dan tetapkan izin Kontribusi ke Build Service
.
Menyebarkan bidang kontrol
Alur yang baru dibuat mungkin tidak terlihat di tampilan default. Pilih tab Terbaru dan kembali ke semua tab untuk melihat alur baru.
Pilih alur penyebaran sarana kontrol dan masukkan nama konfigurasi untuk penyebar dan pustaka SAP. Pilih Jalankan untuk menyebarkan sarana kontrol. Pastikan untuk memilih kotak centang Sebarkan aplikasi web konfigurasi jika Anda ingin menyiapkan aplikasi web konfigurasi.
Konfigurasikan agen Layanan Azure DevOps yang dihosting sendiri secara manual
Konfigurasi manual hanya diperlukan jika agen Layanan Azure DevOps tidak dikonfigurasi secara otomatis. Periksa apakah kumpulan agen kosong sebelum Anda melanjutkan.
Untuk menyambungkan ke penyebar:
Masuk ke portal Azure.
Buka grup sumber daya yang berisi komputer virtual penyebar.
Koneksi ke komputer virtual 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 komputer virtual.
Jalankan skrip berikut untuk mengonfigurasi penyebar:
mkdir -p ~/Azure_SAP_Automated_Deployment
cd ~/Azure_SAP_Automated_Deployment
git clone https://github.com/Azure/sap-automation.git
cd sap-automation/deploy/scripts
./configure_deployer.sh
Reboot penyebar, sambungkan kembali, dan jalankan skrip berikut untuk menyiapkan agen Azure DevOps:
cd ~/Azure_SAP_Automated_Deployment/
$DEPLOYMENT_REPO_PATH/deploy/scripts/setup_ado.sh
Terima lisensi dan, saat Anda dimintai URL server, masukkan URL yang Anda ambil saat membuat proyek Azure DevOps. Untuk autentikasi, pilih PAT dan masukkan nilai token dari langkah sebelumnya.
Saat diminta, masukkan nama kumpulan aplikasi yang Anda buat di langkah sebelumnya. Terima nama agen default dan nama folder kerja default. Agen sekarang dikonfigurasi dan dimulai.
Menyebarkan aplikasi web sarana kontrol
Memilih parameter saat Anda menjalankan alur penyebaran sarana kontrol menyediakan infrastruktur yang diperlukan untuk menghosting deploy the web app infrastructure
aplikasi web. Alur Sebarkan aplikasi web menerbitkan perangkat lunak aplikasi ke infrastruktur tersebut.
Tunggu hingga penyebaran selesai. Pilih tab Ekstensi dan ikuti instruksi untuk menyelesaikan konfigurasi. reply-url
Perbarui nilai untuk pendaftaran aplikasi.
Sebagai hasil dari menjalankan alur sarana kontrol, bagian dari URL aplikasi web yang diperlukan disimpan dalam variabel bernama WEBAPP_URL_BASE
dalam grup variabel khusus lingkungan Anda. Kapan saja, Anda dapat memperbarui URL aplikasi web yang terdaftar dengan menggunakan perintah berikut.
webapp_url_base=<WEBAPP_URL_BASE>
az ad app update --id $TF_VAR_app_registration_app_id --web-home-page-url https://${webapp_url_base}.azurewebsites.net --web-redirect-uris https://${webapp_url_base}.azurewebsites.net/ https://${webapp_url_base}.azurewebsites.net/.auth/login/aad/callback
Anda juga perlu memberikan izin pembaca ke identitas terkelola yang ditetapkan sistem layanan aplikasi. Buka sumber daya layanan aplikasi. Di sisi kiri, pilih Identitas. Pada tab Yang ditetapkan sistem, pilih Penetapan>peran Azure Tambahkan penetapan peran. Pilih Langganan sebagai cakupan dan Pembaca sebagai peran. Kemudian pilih Simpan. Tanpa langkah ini, fungsionalitas dropdown aplikasi web tidak akan berfungsi.
Anda sekarang dapat mengunjungi aplikasi web dan menggunakannya untuk menyebarkan zona beban kerja SAP dan infrastruktur sistem SAP.