Meningkatkan Kerangka Kerja Otomatisasi Penyebaran SAP
Kerangka Kerja Otomatisasi Penyebaran SAP diperbarui secara berkala. Artikel ini menjelaskan cara memperbarui kerangka kerja.
Sebelum Anda meningkatkan kerangka kerja, pastikan Anda mencadangkan file status jarak jauh dari tfstate
akun penyimpanan di pustaka SAP.
Anda dapat meningkatkan definisi alur dengan menjalankan Upgrade Pipelines
alur.
Jika Anda tidak memiliki Upgrade Pipelines
alur, Anda dapat membuatnya secara manual.
Buka folder alur di repositori Anda dan buat definisi alur dengan memilih file dari menu Baru . Beri nama file 21-update-pipelines.yml
dan tempelkan konten berikut ke dalam file.
---
# /*---------------------------------------------------------------------------8
# | |
# | This pipeline updates the ADO repository |
# | |
# +------------------------------------4--------------------------------------*/
name: Update Azure DevOps repository from GitHub $(branch) branch
parameters:
- name: repository
displayName: Source repository
type: string
default: https://github.com/Azure/sap-automation-bootstrap.git
- name: branch
displayName: Source branch to update from
type: string
default: main
- name: force
displayName: Force the update
type: boolean
default: false
trigger: none
pool:
vmImage: ubuntu-latest
variables:
- name: repository
value: ${{ parameters.repository }}
- name: branch
value: ${{ parameters.branch }}
- name: force
value: ${{ parameters.force }}
- name: log
value: logfile_$(Build.BuildId)
stages:
- stage: Update_DEVOPS_repository
displayName: Update DevOps pipelines
jobs:
- job: Update_DEVOPS_repository
displayName: Update DevOps pipelines
steps:
- checkout: self
persistCredentials: true
- bash: |
#!/bin/bash
green="\e[1;32m" ; reset="\e[0m" ; boldred="\e[1;31m"
git config --global user.email "$(Build.RequestedForEmail)"
git config --global user.name "$(Build.RequestedFor)"
git config --global pull.ff false
git config --global pull.rebase false
git remote add remote-repo $(repository) >> /tmp/$(log) 2>&1
git fetch --all --tags >> /tmp/$(log) 2>&1
git checkout --quiet origin/main
git checkout --quiet remote-repo/main ./pipelines/01-deploy-control-plane.yml
git checkout --quiet remote-repo/main ./pipelines/02-sap-workload-zone.yml
git checkout --quiet remote-repo/main ./pipelines/03-sap-system-deployment.yml
git checkout --quiet remote-repo/main ./pipelines/04-sap-software-download.yml
git checkout --quiet remote-repo/main ./pipelines/05-DB-and-SAP-installation.yml
git checkout --quiet remote-repo/main ./pipelines/10-remover-terraform.yml
git checkout --quiet remote-repo/main ./pipelines/11-remover-arm-fallback.yml
git checkout --quiet remote-repo/main ./pipelines/12-remove-control-plane.yml
git checkout --quiet remote-repo/main ./pipelines/20-update-repositories.yml
git checkout --quiet remote-repo/main ./pipelines/22-sample-deployer-configuration.yml
git checkout --quiet remote-repo/main ./pipelines/21-update-pipelines.yml
return_code=$?
if [[ "$(force)" == "True" ]]; then
echo "running git push to ADO with force option"
if ! git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push --force origin HEAD:$(branch) >> /tmp/$(log) 2>&1
then
echo -e "$red--- Failed to push ---$reset"
exit 1
fi
else
git commit -m "Update ADO repository from GitHub $(branch) branch" -a
echo "running git push to ADO"
if ! git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push origin HEAD:$(branch) >> /tmp/$(log) 2>&1
then
echo -e "$red--- Failed to push ---$reset"
exit 1
fi
fi
# If Pull already failed then keep that error code
if [ 0 != $return_code ]; then
return_code=$?
fi
exit $return_code
displayName: Update DevOps pipelines
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
failOnStderr: true
...
Terapkan perubahan untuk menyimpan file ke repositori dan membuat alur di Azure DevOps.
Upgrade Pipelines
Buat alur dengan memilih Alur Baru dari bagian Alur. 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 |
---|---|
Cabang | Utama |
Jalur | deploy/pipelines/21-update-pipelines.yml |
Nama | Meningkatkan alur |
Simpan alurnya. Untuk melihat opsi Simpan, pilih chevron di samping Jalankan. Buka bagian Alur dan pilih alur. Ganti nama alur menjadi Upgrade pipelines
dengan memilih Ganti Nama/Pindahkan dari menu elipsis di sebelah kanan.
Jalankan alur untuk meningkatkan semua definisi alur.
Sarana kontrol adalah komponen pertama yang perlu Anda tingkatkan. Untuk meningkatkan sarana kontrol, jalankan Deploy Control Plane
ulang alur atau jalankan deploy_controlplane.sh
ulang skrip.
Jalankan perintah berikut sebelum Anda melakukan peningkatan sarana kontrol.
az login
az account set --subscription <subscription id>
az vm run-command invoke -g <DeployerResourceGroup> -n <deployerVMName> --command-id RunShellScript --scripts "sudo rm /etc/profile.d/deploy_server.sh"
az vm extension delete -g <DeployerResourceGroup> -n <deployerVMName> -n configure_deployer
Skrip menghapus konfigurasi penyebar lama dan memungkinkan konfigurasi baru diterapkan.
Jika Anda menggunakan zona DNS Privat dari sarana kontrol, jalankan perintah berikut sebelum Anda melakukan peningkatan.
az network private-dns zone create --name privatelink.vaultcore.azure.net --resource-group <SAPLibraryResourceGroup>
Anda juga dapat mengonfigurasi agen Azure DevOps untuk melakukan masuk ke Azure dengan menggunakan perwakilan layanan. Tambahkan variabel berikut ke grup variabel yang digunakan oleh alur sarana kontrol, yang biasanya SDAF-MGMT
.
Nama | Nilai |
---|---|
Logon_Using_SPN | benar |
Anda dapat meningkatkan Terraform pada agen dengan menjalankan skrip berikut:
tfversion="1.6.5"
# Terraform installation directories
tf_base=/opt/terraform
tf_dir="${tf_base}/terraform_${tfversion}"
tf_bin="${tf_base}/bin"
tf_zip="terraform_${tfversion}_linux_amd64.zip"
#
# Install terraform for all users
#
sudo mkdir -p \
"${tf_dir}" \
"${tf_bin}"
wget -nv -O /tmp/"${tf_zip}" "https://releases.hashicorp.com/terraform/${tfversion}/${tf_zip}"
sudo unzip -o /tmp/"${tf_zip}" -d "${tf_dir}"
sudo ln -vfs "../$(basename "${tf_dir}")/terraform" "${tf_bin}/terraform"
Zona beban kerja adalah komponen kedua yang perlu Anda tingkatkan. Untuk meningkatkan sarana kontrol, jalankan SAP Workload Zone deployment
ulang alur atau jalankan install_workloadzone.sh
ulang skrip.
Bersiaplah untuk peningkatan dengan terlebih dahulu mengambil ID sumber daya zona DNS Privat dan nama titik akhir privat brankas kunci dengan menjalankan perintah berikut:
az network private-dns zone show --name privatelink.vaultcore.azure.net --resource-group <SAPLibraryResourceGroup> --query id --output tsv
az network private-endpoint list --resource-group <WorkloadZoneResourceGroup> --query "[?contains(name,'keyvault')].{Name:name} | [0] | Name" --output tsv
Jika Anda menggunakan titik akhir privat, jalankan perintah berikut sebelum Anda melakukan peningkatan untuk memperbarui pengaturan DNS untuk titik akhir privat. privateDNSzoneResourceId
Ganti tempat penampung dan keyvaultEndpointName
dengan nilai yang diambil di langkah sebelumnya.
az network private-endpoint dns-zone-group create --resource-group <WorkloadZoneResourceGroup> --endpoint-name <keyvaultEndpointName> --name privatelink.vaultcore.azure.net --private-dns-zone <privateDNSzoneResourceId> --zone-name privatelink.vaultcore.azure.net
Anda juga dapat mengonfigurasi agen Azure DevOps untuk melakukan masuk ke Azure dengan menggunakan perwakilan layanan. Tambahkan variabel berikut ke grup variabel yang digunakan oleh alur sarana kontrol, yang biasanya SDAF-DEV
.
Nama | Nilai |
---|---|
Logon_Using_SPN | benar |