Mulai dengan penyebaran manual
Seiring dengan penyebaran otomatis, Anda juga dapat melakukan penyebaran manual SAP di Azure Deployment Automation Framework. Gunakan contoh konfigurasi dan contoh file parameter ini untuk memulai.
Tip
Panduan ini hanya mencakup cara melakukan penyebaran manual. Jika Anda ingin memulai dengan cepat, lihat panduan penyebaran otomatis.
Langkah-langkah ini merujuk dan menggunakan konvensi penamaan default untuk kerangka kerja otomatisasi. Nilai contoh juga digunakan untuk penamaan di seluruh kode. Misalnya, nama penyebar adalah DEMO-EUS2-DEP00-INFRASTRUCTURE
. Dalam contoh ini, lingkungannya adalah demo (DEMO
), wilayahnya adalah East US 2 (EUS2
), dan jaringan virtual penyebar adalah DEP00
.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, Anda dapat membuat akun gratis.
- Akun Azure dengan hak istimewa untuk membuat perwakilan layanan.
- Unduhan perangkat lunak SAP di lingkungan Azure Anda.
Penyiapan penyebar
Sebelum Anda mulai, periksa apakah Anda berlangganan Azure yang benar. Kemudian, siapkan penyebar Anda:
- Unduh dan pasang Terraform.
- Klon dan konfigurasikan repositori kerangka kerja otomatisasi pada penyebar.
- Inisialisasi Terraform
- Dapatkan kunci SSH Anda untuk digunakan di sisa penyebaran Anda.
Periksa langganan Azure
Verifikasi bahwa Anda menggunakan langganan Azure yang sesuai:
Masuk ke portal Azure.
Periksa apakah Anda termasuk dalam langganan yang ingin Anda gunakan:
az account list --output=table | grep -i true
Jika perlu, ubah langganan aktif menjadi langganan yang ingin Anda gunakan.
Unduh Terraform
Unduh Terraform ke lingkungan Anda:
Buat dan navigasikan ke direktori baru,
bin
.mkdir -p ~/bin; cd $_
Ambil biner Terraform yang sesuai. Contohnya:
wget https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
Buka zip biner Terraform. Contohnya:
unzip terraform_0.14.7_linux_amd64.zip
Verifikasi unduhan Terraform Anda:
hash terraform
Buat direktori untuk penyebaran otomatis SAP Anda.
mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
Siapkan repositori
Menggandakan dan mengonfigurasi repositori kerangka kerja otomatisasi.
Kloning repositori dari GitHub:
git clone https://github.com/Azure/sap-automation.git
Navigasi ke folder
sap-automation
.cd ~/Azure_SAP_Automated_Deployment/sap-automation
Secara opsional, periksa cabang yang berbeda dari cabang utama. Cabang utama untuk repositori adalah default.
Ganti
<branch>
dengan nama cabang atau komit hash yang ingin Anda gunakan.git checkout <branch>
Periksa apakah cabang Anda berada pada revisi yang diharapkan.
git rev-parse HEAD
Inisialisasi Terraform
Buat direktori kerja. Nama direktori harus mematuhi konvensi penamaan default. Contohnya:
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/DEMO-EUS2-DEP00-INFRASTRUCTURE; cd $_
Buat file parameter JSON.
cat <<EOF > DEMO-EUS2-DEP00-INFRASTRUCTURE.json { "infrastructure": { "environment" : "DEMO", "region" : "eastus2", "vnets": { "management": { "name" : "DEP00", "address_space" : "10.0.0.0/25", "subnet_mgmt": { "prefix" : "10.0.0.64/28" }, "subnet_fw": { "prefix" : "10.0.0.0/26" } } } }, "options": { "enable_deployer_public_ip" : true }, "firewall_deployment" : true } EOF
Menginisialisasi Terraform.
terraform init ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Buat rencana eksekusi Terraform yang mengikuti konvensi penamaan default.
terraform plan \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Terapkan rencana eksekusi Terraform Anda untuk menyebarkan sumber daya.
terraform apply --auto-approve \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Catat outputnya.
Dapatkan kunci SSH
Dengan menggunakan keluaran dari penyebaran Terraform, catat nilai untuk bidang berikut.
Alamat IP publik:
deployer_public_ip_address
.Nama pengguna brankas kunci:
deployer_kv_user_name
.Nama brankas kunci privat:
deployer_kv_prvt_name
.Nama kunci publik:
deployer_public_key_secret_name
.Nama kunci privat:
deployer_private_key_secret_name
.
Jalankan skrip pasca-pemrosesan.
./post_deployment.sh
Ekstrak kunci SSH privat:
az keyvault secret show \ --vault-name DEMOEUS2DEP00userE27 \ --name DEMO-EUS2-DEP00-sshkey | \ jq -r .value > sshkey
Ekstrak kunci SSH publik:
az keyvault secret show \ --vault-name DEMOEUS2DEP00userF6A \ --name DEMO-EUS2-DEP00-sshkey-pub | \ jq -r .value > sshkey.pub
Unduh pasangan kunci privat dan publik. Di menu Cloud Shell, pilih Unggah/Unduh file>Unduh.
Konfigurasi utama layanan
Penyebar menggunakan perwakilan layanan untuk menyebarkan sumber daya ke dalam langganan.
Masuk ke Azure CLI.
az login
Membuat perwakilan layanan. Pastikan untuk mengganti
<subscription-id>
dengan pengidentifikasi langganan Azure Anda. Ganti juga<sp-name>
dengan nama perwakilan layanan Anda.az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscription-id>" --name="<sp-name>"
Perhatikan output, yang berisi informasi tentang perwakilan layanan. Salin nilai bidang berikut:
Pengidentifikasi aplikasi:
appId
.Sandi:
password
.Pengidentifikasi penyewa:
tenant
.
Buat penetapan peran untuk perwakilan layanan. Pastikan untuk mengganti
<appId>
dengan pengidentifikasi aplikasi yang Anda catat di langkah sebelumnya.az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
Tambahkan kunci untuk perwakilan layanan ke brankas kunci sebagai berikut. Pastikan untuk mengganti nilai tempat penampung dengan informasi yang Anda catat di langkah sebelumnya. Ganti
<environment>
dengan nama lingkungan Anda, sepertiDEMO
.az keyvault secret set --name "<environment>-subscription-id" --vault-name "<deployer_kv_user_name>" --value "<subscription-id>"; az keyvault secret set --name "<environment>-tenant-id" --vault-name "<deployer_kv_user_name>" --value "<tenant>"; az keyvault secret set --name "<environment>-client-id" --vault-name "<deployer_kv_user_name>" --value "<appId>"; az keyvault secret set --name "<environment>-client-secret" --vault-name "<deployer_kv_user_name>" --value "<password>";
Konfigurasi pustaka
Masuk ke penyebar menggunakan klien SSH dan kunci SSH yang Anda ambil selama penyiapan penyebar. Jika Anda menggunakan Putty sebagai klien SSH, konversi kunci SSH ke format
.ppk
sebelum digunakan.Arahkan ke tempat Anda mengkloning repositori kerangka kerja otomatisasi.
cd ~/Azure_SAP_Automated_Deployment/sap-automation
Secara opsional, periksa cabang yang berbeda dari cabang utama. Cabang utama untuk repositori adalah default.
Ganti
<branch>
dengan nama cabang atau komit hash yang ingin Anda gunakan.git checkout <branch>
Periksa apakah cabang Anda berada pada revisi yang diharapkan.
git rev-parse HEAD
Buat direktori kerja.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY; cd $_
Buat file konfigurasi JSON.
cat <<EOF > DEMO-EUS2-SAP_LIBRARY.json { "infrastructure": { "environment" : "DEMO", "region" : "eastus2" }, "deployer": { "environment" : "DEMO", "region" : "eastus2", "vnet" : "DEP00" } } EOF
Menginisialisasi Terraform.
terraform init ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
Buat rencana eksekusi Terraform yang mengikuti konvensi penamaan default.
terraform plan \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_library
Terapkan rencana eksekusi Terraform Anda untuk menyebarkan sumber daya.
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
Inisialisasi ulang penyebaran
Inisialisasi ulang penyebar dan pustaka SAP.
Inisialisasi ulang penyebar
Tetap masuk ke penyebar Anda di klien SSH. Atau, masuk lagi.
Arahkan ke direktori kerja yang Anda buat.
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LOCAL/DEMO-EUS2-DEP00-INFRASTRUCTURE
Buat file parameter lain bernama
backend
. Sekali lagi, ikuti konvensi penamaan default. Untukresource_group_name
, gunakan nama grup sumber daya tempat akun penyimpanan dengan file status Terraform Anda (.tfstate
) berada. Untukstorage_account_name
, ganti<tfstate_storage_account_name>
dengan nama akun penyimpanan dari penyebaran Pustaka SAP untuk file.tfstate
. Untukkey
, gabungkan nama grup sumber daya penyebar dengan ekstensi.terraform.tfstate
. Contohnya:cat <<EOF > backend resource_group_name = "DEMO-EUS2-SAP_LIBRARY" storage_account_name = "<tfstate_storage_account_name>" container_name = "tfstate" key = "DEMO-EUS2-DEP00-INFRASTRUCTURE.terraform.tfstate" EOF
Inisialisasi Terraform lagi.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Saat diminta Apakah Anda ingin menyalin status yang ada ke backend baru?, masukkan
yes
.Hapus file status lokal.
rm terraform.tfstate*
Buat rencana eksekusi Terraform. Sekali lagi, ikuti konvensi penamaan default. Contohnya:
terraform plan \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Terapkan rencana eksekusi Terraform. Contohnya:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Inisialisasi ulang Pustaka SAP
Tetap masuk ke penyebar Anda di klien SSH. Atau, masuk lagi.
Arahkan ke direktori kerja yang Anda buat.
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY
Buat file parameter lain bernama
backend
. Sekali lagi, ikuti konvensi penamaan default. Untukresource_group_name
, gunakan nama grup sumber daya tempat akun penyimpanan dengan file status Terraform Anda (.tfstate
) berada. Untukstorage_account_name
, ganti<tfstate_storage_account_name>
dengan nama akun penyimpanan dari penyebaran Pustaka SAP untuk file.tfstate
. Untukkey
, gabungkan nama grup sumber daya penyebar dengan ekstensi.terraform.tfstate
. Contohnya:cat <<EOF > backend resource_group_name = "DEMO-EUS2-SAP_LIBRARY" storage_account_name = "<tfstate_storage_account_name>" container_name = "tfstate" key = "DEMO-EUS2-SAP_LIBRARY.terraform.tfstate" EOF
Tambahkan pasangan nilai kunci baru segera setelah tanda kurung buka (
{
) dari file parameterbackend
. Untuktfstate_resource_id
, gunakan pengidentifikasi sumber daya untuk akun penyimpanan file status Terraform. Untukdeployer_tfstate_key
, gunakan nama kunci untuk file status penyebar. Contohnya:{ "tfstate_resource_id" : "<identifier>", "deployer_tfstate_key" : "<key>", "infrastructure": { ... }
Inisialisasi Terraform lagi.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_library/
Saat diminta Apakah Anda ingin menyalin status yang ada ke backend baru?, masukkan
yes
.Hapus file status lokal.
rm terraform.tfstate*
Buat rencana eksekusi Terraform. Sekali lagi, ikuti konvensi penamaan default. Contohnya:
terraform plan \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/run/sap_library/
Terapkan rencana eksekusi Terraform. Contohnya:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/run/sap_library/
Sebarkan jaringan virtual beban kerja
Selanjutnya, sebarkan jaringan virtual beban kerja SAP.
Tetap masuk ke penyebar Anda di klien SSH. Atau, masuk lagi.
Buat direktori kerja. Ikuti konvensi penamaan default.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEMO-EUS2-SAP00-INFRASTRUCTURE; cd $_
Buat file parameter bernama
backend
. Untukresource_group_name
, gunakan nama grup sumber daya tempat akun penyimpanan dengan file status Terraform Anda (.tfstate
) berada. Untukstorage_account_name
, ganti<tfstate_storage_account_name>
dengan nama akun penyimpanan dari penyebaran Pustaka SAP untuk file.tfstate
. Untukkey
, gabungkan nama grup sumber daya penyebar dengan ekstensi.terraform.tfstate
. Contohnya:cat <<EOF > backend resource_group_name = "DEMO-EUS2-SAP_LIBRARY" storage_account_name = "<tfstate_storage_account_name>" container_name = "tfstate" key = "DEMO-EUS2-SAP00-INFRASTRUCTURE.terraform.tfstate" EOF
Inisialisasi Terraform lagi.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Buat rencana eksekusi Terraform. Sekali lagi, ikuti konvensi penamaan default. Contohnya:
terraform plan \ --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Terapkan rencana eksekusi Terraform. Contohnya:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Unit penyebaran SAP
Selanjutnya, siapkan unit penyebaran SAP.
Tetap masuk ke penyebar Anda di klien SSH. Atau, masuk lagi
Buat direktori kerja. Ikuti konvensi penamaan default.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEMO-EUS2-SAP00-X00; cd $_
Buat file parameter lain bernama
backend
. Untukresource_group_name
, gunakan nama grup sumber daya tempat akun penyimpanan dengan file status Terraform Anda (.tfstate
) berada. Untukstorage_account_name
, ganti<tfstate_storage_account_name>
dengan nama akun penyimpanan dari penyebaran Pustaka SAP untuk file.tfstate
. Untukkey
, gabungkan nama grup sumber daya penyebar dengan ekstensi.terraform.tfstate
. Contohnya:cat <<EOF > backend resource_group_name = "DEMO-EUS2-SAP_LIBRARY" storage_account_name = "<tfstate_storage_account_name>" container_name = "tfstate" key = "DEMO-EUS2-SAP00-X00.terraform.tfstate" EOF
Buat file parameter JSON dengan parameter input sebagai berikut. Pastikan untuk mengganti nilai sampel dengan nilai Anda sendiri.
cat <<EOF > DEMO-EUS2-SAP00-X00.json { "tfstate_resource_id" : "<resource-id>", "deployer_tfstate_key" : "DEMO-EUS2-DEP00-INFRASTRUCTURE.terraform.tfstate", "landscape_tfstate_key" : "DEMO-EUS2-SAP00-INFRASTRUCTURE.terraform.tfstate", "infrastructure": { "environment" : "DEMO", "region" : "eastus2", "vnets": { "sap": { "name" : "SAP00", "subnet_db": { "prefix" : "0.0.0.0/28" }, "subnet_web": { "prefix" : "0.0.0.0/28" }, "subnet_app": { "prefix" : "0.0.0.0/27" }, "subnet_admin": { "prefix" : "0.0.0.0/27" } } } }, "databases": [ { "platform" : "HANA", "high_availability" : false, "size" : "S4Demo", "os": { "publisher" : "SUSE", "offer" : "sles-sap-12-sp5", "sku" : "gen2", "version" : "latest" } } ], "application": { "enable_deployment" : true, "sid" : "X00", "scs_instance_number" : "00", "ers_instance_number" : "10", "scs_high_availability" : false, "application_server_count" : 3, "webdispatcher_count" : 1, "authentication": { "type" : "key", "username" : "azureadm" } } } EOF
Inisialisasi Terraform lagi.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_system/
Buat rencana eksekusi Terraform. Sekali lagi, ikuti konvensi penamaan default. Contohnya:
terraform plan \ --var-file=DEMO-EUS2-SAP00-X00.json \ ../../../sap-automation/deploy/terraform/run/sap_system/
Terapkan rencana eksekusi Terraform. Contohnya:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP00-X00.json \ ../../../sap-automation/deploy/terraform/run/sap_system/
Konfigurasi yang memungkinkan
Konfigurasikan penyiapan Anda dengan menjalankan Playbook Ansible. Playbook ini terletak di repositori kerangka kerja otomatisasi di /sap-automation/deploy/ansible
.
Filename | Deskripsi |
---|---|
playbook_01_os_base_config.yaml |
Konfigurasi sistem operasi (OS) dasar |
playbook_02_os_sap_specific_config.yaml |
Konfigurasi OS khusus SAP |
playbook_03_bom_processing.yaml |
Unduhan perangkat lunak pemrosesan SAP Bill of Materials (BOM) |
playbook_04a_sap_scs_install.yaml |
Penginstalan layanan pusat SAP (SCS) |
playbook_05a_hana_db_install.yaml |
Penginstalan basis data SAP Hana |
playbook_06a_sap_dbload.yaml |
Pemuat database |
playbook_06b_sap_pas_install.yaml |
Penginstalan server aplikasi utama (PAS) SAP |
playbook_06c_sap_app_install.yaml |
Penginstalan server aplikasi SAP |
playbook_06d_sap_web_install.yaml |
Penginstalan operator web SAP |
playbook_06_00_00_pacemaker.yaml |
Konfigurasi kluster alat pacu jantung |
playbook_06_00_01_pacemaker_scs.yaml |
Konfigurasi alat pacu jantung untuk SCS |
playbook_06_00_03_pacemaker_hana.yaml |
Konfigurasi alat pacu jantung untuk database SAP Hana |
Untuk menjalankan playbook atau beberapa playbook, gunakan perintah ansible-playbook
sebagai berikut. Pastikan untuk mengubah semua nilai tempat penampung menjadi informasi Anda sendiri:
- Ubah
<your-sapbits-path>
ke jalur ke akun penyimpanan Andasapbits
untuk Pustaka SAP. - Ubah
<azure-admin>
menjadi nama pengguna administrator Azure Anda. - Ubah
<ssh-key
> menjadi kunci SSH privat yang ingin Anda gunakan. - Ubah nilai lain di bawah
--extra-vars
sesuai kebutuhan untuk setelan Anda.
Jika Anda mengalami masalah, pastikan Anda telah mengunduh perangkat lunak SAP ke lingkungan Azure Anda.
export ANSIBLE_HOST_KEY_CHECKING=False
# export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=Yes
# export ANSIBLE_KEEP_REMOTE_FILES=1
ansible-playbook \
--inventory new-hosts.yaml \
--user <azure-admin> \
--private-key <ssh-key> \
--extra-vars="{ \
\"bom_base_name\": \"HANA_2_00_053_v001\", \
\"download_templates\": \"false\", \
\"sapbits_location_base_path\": \"<your-sapbits-path>", \
\"target_media_location\": \"/usr/sap/install\", \
\"sap_sid\": \"X00\", \
\"hdb_sid\": \"HDB\" \
}" \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_00_transition_start_for_sap_install_refactor.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_01_os_base_config.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_02_os_sap_specific_config.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_03_bom_processing.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04a_sap_scs_install.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05a_hana_db_install.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_06a_sap_dbload.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_06b_sap_pas_install.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_06c_sap_app_install.yaml \
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_06d_sap_web_install.yaml