Aan de slag met handmatige implementatie
Naast geautomatiseerde implementatie kunt u ook handmatige implementatie van het SAP op Azure Deployment Automation Framework uitvoeren. Gebruik deze voorbeeldconfiguratie en voorbeeldparameterbestanden om aan de slag te gaan.
Fooi
In deze handleiding wordt alleen beschreven hoe u een handmatige implementatie uitvoert. Als u snel aan de slag wilt gaan, raadpleegt u in plaats daarvan de handleiding voor geautomatiseerde implementatie.
Deze stappen verwijzen naar en gebruiken de standaardnaamconventie voor het automation-framework. Voorbeeldwaarden worden ook gebruikt voor het benoemen van namen in de code. De naam van de implementatie is DEMO-EUS2-DEP00-INFRASTRUCTURE
bijvoorbeeld . In dit voorbeeld is de omgeving een demo (DEMO
), de regio VS - oost 2 (EUS2
) en het virtuele netwerk van de deployer.DEP00
Vereisten
- Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
- Een Azure-account met bevoegdheden voor het maken van een service-principal.
- Een download van de SAP-software in uw Azure-omgeving.
Implementatieprogramma instellen
Controleer voordat u begint of u het juiste Azure-abonnement hebt. Stel vervolgens uw implementatieprogramma in:
- Download en installeer Terraform.
- Kloon en configureer de automation framework-opslagplaats op de deployer.
- Terraform initialiseren
- Haal uw SSH-sleutels op voor gebruik in de rest van uw implementatie.
Azure-abonnement controleren
Controleer of u het juiste Azure-abonnement gebruikt:
Meld u aan bij de Azure-portal.
Controleer of u zich in het abonnement bevindt dat u wilt gebruiken:
az account list --output=table | grep -i true
Wijzig indien nodig het actieve abonnement in het abonnement dat u wilt gebruiken.
Terraform downloaden
Terraform downloaden naar uw omgeving:
Maak en navigeer naar een nieuwe map.
bin
mkdir -p ~/bin; cd $_
Haal het juiste binaire Terraform-bestand op. Bijvoorbeeld:
wget https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
Pak het binaire Terraform-bestand uit. Bijvoorbeeld:
unzip terraform_0.14.7_linux_amd64.zip
Controleer uw Terraform-download:
hash terraform
Maak een map voor uw geautomatiseerde SAP-implementatie.
mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
Opslagplaats instellen
Kloon en configureer de automation framework-opslagplaats.
Kloon de opslagplaats vanuit GitHub:
git clone https://github.com/Azure/sap-automation.git
Navigeer naar de map
sap-automation
.cd ~/Azure_SAP_Automated_Deployment/sap-automation
Bekijk desgewenst een andere vertakking dan de hoofdbranch. De hoofdbranch voor de opslagplaats is de standaard.
Vervang door
<branch>
de naam van de vertakking of commit-hash die u wilt gebruiken.git checkout <branch>
Controleer of uw vertakking de verwachte revisie heeft.
git rev-parse HEAD
Terraform initialiseren
Maak een werkmap. De naam van de map moet de standaardnaamconventie observeren. Bijvoorbeeld:
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/DEMO-EUS2-DEP00-INFRASTRUCTURE; cd $_
Maak het JSON-parameterbestand.
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
Initialiseer Terraform.
terraform init ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Maak een Terraform-uitvoeringsplan dat volgt op de standaardnaamconventie.
terraform plan \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Pas uw Terraform-uitvoeringsplan toe om de resources te implementeren.
terraform apply --auto-approve \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Noteer de uitvoer.
SSH-sleutels ophalen
Noteer de waarden voor de volgende velden met behulp van de uitvoer van de Terraform-implementatie.
Openbaar IP-adres:
deployer_public_ip_address
.De gebruikersnaam van de sleutelkluis:
deployer_kv_user_name
.De naam van de persoonlijke sleutelkluis:
deployer_kv_prvt_name
.Naam van openbare sleutel:
deployer_public_key_secret_name
.De naam van de persoonlijke sleutel:
deployer_private_key_secret_name
.
Voer het script na verwerking uit.
./post_deployment.sh
Pak de persoonlijke SSH-sleutel uit:
az keyvault secret show \ --vault-name DEMOEUS2DEP00userE27 \ --name DEMO-EUS2-DEP00-sshkey | \ jq -r .value > sshkey
Pak de openbare SSH-sleutel uit:
az keyvault secret show \ --vault-name DEMOEUS2DEP00userF6A \ --name DEMO-EUS2-DEP00-sshkey-pub | \ jq -r .value > sshkey.pub
Download het persoonlijke en openbare sleutelpaar. Selecteer Bestanden uploaden/downloaden> in het Cloud Shell-menu.
Configuratie van service-principal
De implementatiefunctie maakt gebruik van een service-principal om resources in een abonnement te implementeren.
Meld u aan bij de Azure CLI.
az login
Een service-principal maken. Zorg ervoor dat u de id van uw Azure-abonnement vervangt
<subscription-id>
. Vervang ook door<sp-name>
een naam voor uw service-principal.az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscription-id>" --name="<sp-name>"
Noteer de uitvoer, die informatie bevat over de service-principal. Kopieer de waarden van de volgende velden:
Toepassings-id:
appId
.Wachtwoord:
password
.Tenant-id:
tenant
.
Maak een roltoewijzing voor de service-principal. Zorg ervoor dat u de toepassings-id vervangt
<appId>
die u in de vorige stap hebt genoteerd.az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
Voeg als volgt sleutels voor de service-principal toe aan de sleutelkluis. Vervang de waarden van de tijdelijke aanduiding door de informatie die u in de vorige stappen hebt genoteerd. Vervang door
<environment>
de naam van uw omgeving, zoalsDEMO
.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>";
Bibliotheekconfiguratie
Meld u aan bij de implementatie met behulp van uw SSH-client en de SSH-sleutels die u tijdens de installatie van de implementatie hebt opgehaald. Als u PuTTY als uw SSH-client gebruikt, converteert u de SSH-sleutels naar
.ppk
indeling voordat u deze gebruikt.Navigeer naar de locatie waar u de opslagplaats van het Automation-framework hebt gekloond.
cd ~/Azure_SAP_Automated_Deployment/sap-automation
Bekijk desgewenst een andere vertakking dan de hoofdbranch. De hoofdbranch voor de opslagplaats is de standaard.
Vervang door
<branch>
de naam van de vertakking of commit-hash die u wilt gebruiken.git checkout <branch>
Controleer of uw vertakking de verwachte revisie heeft.
git rev-parse HEAD
Maak een werkmap.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY; cd $_
Maak het JSON-configuratiebestand.
cat <<EOF > DEMO-EUS2-SAP_LIBRARY.json { "infrastructure": { "environment" : "DEMO", "region" : "eastus2" }, "deployer": { "environment" : "DEMO", "region" : "eastus2", "vnet" : "DEP00" } } EOF
Initialiseer Terraform.
terraform init ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
Maak een Terraform-uitvoeringsplan dat volgt op de standaardnaamconventie.
terraform plan \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_library
Pas uw Terraform-uitvoeringsplan toe om de resources te implementeren.
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
Implementatie opnieuw initialiseren
Initialiseer zowel de deployer als de SAP-bibliotheek opnieuw.
Deployer opnieuw initialiseren
Blijf aangemeld bij uw implementatie in de SSH-client. Of meld u opnieuw aan.
Navigeer naar de werkmap die u hebt gemaakt.
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LOCAL/DEMO-EUS2-DEP00-INFRASTRUCTURE
Maak een ander parameterbestand met de naam
backend
. Volg opnieuw de standaardnaamconventies. Gebruikresource_group_name
hiervoor de naam van de resourcegroep waarin het opslagaccount zich bevindt met uw Terraform-statusbestanden (.tfstate
).<tfstate_storage_account_name>
Vervang hiervoorstorage_account_name
door de naam van het opslagaccount van de SAP-bibliotheekimplementatie voor.tfstate
bestanden. Combineerkey
de naam van de resourcegroep van de implementatie met de extensie.terraform.tfstate
. Bijvoorbeeld: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
Initialiseer Terraform opnieuw.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Wanneer u hierom wordt gevraagd , wilt u de bestaande status naar de nieuwe back-end kopiƫren?, voert u in
yes
.Verwijder het lokale statusbestand.
rm terraform.tfstate*
Maak een Terraform-uitvoeringsplan. Volg opnieuw de standaardnaamconventies. Bijvoorbeeld:
terraform plan \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Pas het Terraform-uitvoeringsplan toe. Bijvoorbeeld:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
SAP-bibliotheek opnieuw initialiseren
Blijf aangemeld bij uw implementatie in de SSH-client. Of meld u opnieuw aan.
Navigeer naar de werkmap die u hebt gemaakt.
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY
Maak een ander parameterbestand met de naam
backend
. Volg opnieuw de standaardnaamconventies. Gebruikresource_group_name
hiervoor de naam van de resourcegroep waarin het opslagaccount zich bevindt met uw Terraform-statusbestanden (.tfstate
).<tfstate_storage_account_name>
Vervang hiervoorstorage_account_name
door de naam van het opslagaccount van de SAP-bibliotheekimplementatie voor.tfstate
bestanden. Combineerkey
de naam van de resourcegroep van de implementatie met de extensie.terraform.tfstate
. Bijvoorbeeld: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
Voeg een nieuw sleutel-waardepaar toe direct na de vierkante haak openen (
{
) van het parameterbestandbackend
. Gebruiktfstate_resource_id
hiervoor de resource-id voor het Terraform-statusbestandsopslagaccount. Gebruikdeployer_tfstate_key
de sleutelnaam voor het statusbestand van de deployer. Bijvoorbeeld:{ "tfstate_resource_id" : "<identifier>", "deployer_tfstate_key" : "<key>", "infrastructure": { ... }
Initialiseer Terraform opnieuw.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_library/
Wanneer u hierom wordt gevraagd , wilt u de bestaande status naar de nieuwe back-end kopiƫren?, voert u in
yes
.Verwijder het lokale statusbestand.
rm terraform.tfstate*
Maak een Terraform-uitvoeringsplan. Volg opnieuw de standaardnaamconventies. Bijvoorbeeld:
terraform plan \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/run/sap_library/
Pas het Terraform-uitvoeringsplan toe. Bijvoorbeeld:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/run/sap_library/
Virtueel netwerk van workload implementeren
Implementeer vervolgens het virtuele netwerk van de SAP-workload.
Blijf aangemeld bij uw implementatie in de SSH-client. Of meld u opnieuw aan.
Maak een werkmap. Volg de standaardnaamconventies.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEMO-EUS2-SAP00-INFRASTRUCTURE; cd $_
Maak een parameterbestand met de naam
backend
. Gebruikresource_group_name
hiervoor de naam van de resourcegroep waarin het opslagaccount zich bevindt met uw Terraform-statusbestanden (.tfstate
).<tfstate_storage_account_name>
Vervang hiervoorstorage_account_name
door de naam van het opslagaccount van de SAP-bibliotheekimplementatie voor.tfstate
bestanden. Combineerkey
de naam van de resourcegroep van de implementatie met de extensie.terraform.tfstate
. Bijvoorbeeld: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
Initialiseer Terraform opnieuw.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Maak een Terraform-uitvoeringsplan. Volg opnieuw de standaardnaamconventies. Bijvoorbeeld:
terraform plan \ --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Pas het Terraform-uitvoeringsplan toe. Bijvoorbeeld:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
SAP-implementatie-eenheid
Stel vervolgens de SAP-implementatie-eenheid in.
Blijf aangemeld bij uw implementatie in de SSH-client. Of meld u opnieuw aan
Maak een werkmap. Volg de standaardnaamconventies.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEMO-EUS2-SAP00-X00; cd $_
Maak een ander parameterbestand met de naam
backend
. Gebruikresource_group_name
hiervoor de naam van de resourcegroep waarin het opslagaccount zich bevindt met uw Terraform-statusbestanden (.tfstate
).<tfstate_storage_account_name>
Vervang hiervoorstorage_account_name
door de naam van het opslagaccount van de SAP-bibliotheekimplementatie voor.tfstate
bestanden. Combineerkey
de naam van de resourcegroep van de implementatie met de extensie.terraform.tfstate
. Bijvoorbeeld: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
Maak als volgt een JSON-parameterbestand met invoerparameters. Zorg ervoor dat u de voorbeeldwaarden vervangt door uw eigen waarden.
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
Initialiseer Terraform opnieuw.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_system/
Maak een Terraform-uitvoeringsplan. Volg opnieuw de standaardnaamconventies. Bijvoorbeeld:
terraform plan \ --var-file=DEMO-EUS2-SAP00-X00.json \ ../../../sap-automation/deploy/terraform/run/sap_system/
Pas het Terraform-uitvoeringsplan toe. Bijvoorbeeld:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP00-X00.json \ ../../../sap-automation/deploy/terraform/run/sap_system/
Ansible-configuratie
Configureer uw installatie door Ansible-playbooks uit te voeren. Deze playbooks bevinden zich in de opslagplaats van het Automation-framework in /sap-automation/deploy/ansible
.
Bestandsnaam | Omschrijving |
---|---|
playbook_01_os_base_config.yaml |
Configuratie van basisbesturingssysteem (OS) |
playbook_02_os_sap_specific_config.yaml |
SAP-specifieke besturingssysteemconfiguratie |
playbook_03_bom_processing.yaml |
SAP Bill of Materials (BOM) verwerken software downloaden |
playbook_04a_sap_scs_install.yaml |
INSTALLATIE van SAP Central Services (SCS) |
playbook_05a_hana_db_install.yaml |
Installatie van SAP HANA-database |
playbook_06a_sap_dbload.yaml |
Databaselaadprogramma |
playbook_06b_sap_pas_install.yaml |
INSTALLATIE van SAP-primaire toepassingsserver (PAS) |
playbook_06c_sap_app_install.yaml |
Installatie van SAP-toepassingsserver |
playbook_06d_sap_web_install.yaml |
Installatie van SAP-web-dispatcher |
playbook_06_00_00_pacemaker.yaml |
Pacemaker-clusterconfiguratie |
playbook_06_00_01_pacemaker_scs.yaml |
Pacemaker-configuratie voor SCS |
playbook_06_00_03_pacemaker_hana.yaml |
Pacemaker-configuratie voor SAP HANA-database |
Als u een playbook of meerdere playbooks wilt uitvoeren, gebruikt u de opdracht ansible-playbook
als volgt. Zorg ervoor dat u alle waarden van tijdelijke aanduidingen wijzigt in uw eigen gegevens:
- Ga naar
<your-sapbits-path>
het pad naar uw opslagaccountsapbits
voor de SAP-bibliotheek. - Ga naar
<azure-admin>
de gebruikersnaam van uw Azure-beheerder. - Ga naar
<ssh-key
> de persoonlijke SSH-sleutel die u wilt gebruiken. - Wijzig andere waarden onder
--extra-vars
indien nodig voor uw instellingen.
Als u problemen ondervindt, moet u ervoor zorgen dat u de SAP-software naar uw Azure-omgeving hebt gedownload.
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