Začínáme s ručním nasazením
Kromě automatizovaného nasazení můžete také provést ruční nasazení SAP v rozhraní Azure Deployment Automation Framework. Začněte pomocí této ukázkové konfigurace a ukázkových souborů parametrů.
Tip
Tato příručka popisuje, jak provést ruční nasazení. Pokud chcete rychle začít, podívejte se na průvodce automatizovaným nasazením.
Tyto kroky odkazují na výchozí zásady vytváření názvů pro architekturu automatizace a používají je. Ukázkové hodnoty se také používají k pojmenování v celém kódu. Například název nasazovacího nástroje je DEMO-EUS2-DEP00-INFRASTRUCTURE
. V tomto příkladu je prostředí ukázkou (DEMO
), oblast je USA – východ 2 (EUS2
) a nasazovací virtuální síť je DEP00
.
Předpoklady
- Předplatné Azure. Pokud nemáte předplatné Azure, můžete si vytvořit bezplatný účet.
- Účet Azure s oprávněními k vytvoření instančního objektu
- Stažení softwaru SAP ve vašem prostředí Azure
Nastavení deployeru
Než začnete, zkontrolujte, že jste ve správném předplatném Azure. Pak nastavte svého nasazovacího nástroje:
- Stáhněte a nainstalujte Terraform.
- Naklonujte a nakonfigurujte úložiště architektury Automation v nasazéru.
- Inicializace Terraformu
- Získejte klíče SSH pro použití ve zbytku nasazení.
Kontrola předplatného Azure
Ověřte, že používáte příslušné předplatné Azure:
Přihlaste se k portálu Azure.
Zkontrolujte, že jste v předplatném, které chcete použít:
az account list --output=table | grep -i true
V případě potřeby změňte aktivní předplatné na předplatné, které chcete použít.
Stáhnout Terraform
Stáhněte si Terraform do svého prostředí:
Vytvořte a přejděte do nového adresáře
bin
.mkdir -p ~/bin; cd $_
Načtěte příslušný binární soubor Terraformu. Příklad:
wget https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
Rozbalte binární soubor Terraformu. Příklad:
unzip terraform_0.14.7_linux_amd64.zip
Ověřte stažení Terraformu:
hash terraform
Vytvořte adresář pro automatizované nasazení SAP.
mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
Nastavení úložiště
Naklonujte a nakonfigurujte úložiště architektury Automation.
Naklonujte úložiště z GitHubu:
git clone https://github.com/Azure/sap-automation.git
Přejděte do složky
sap-automation
.cd ~/Azure_SAP_Automated_Deployment/sap-automation
Volitelně si můžete rezervovat jinou větev než hlavní větev. Hlavní větev úložiště je výchozí.
Nahraďte
<branch>
názvem větve nebo hodnotou hash potvrzení, kterou chcete použít.git checkout <branch>
Zkontrolujte, jestli je vaše větev v očekávané revizi.
git rev-parse HEAD
Inicializace Terraformu
Vytvořte pracovní adresář. Název adresáře musí dodržovat výchozí zásady vytváření názvů. Příklad:
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/DEMO-EUS2-DEP00-INFRASTRUCTURE; cd $_
Vytvořte soubor parametrů 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
Inicializujte Terraform.
terraform init ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Vytvořte plán provádění Terraformu, který se řídí výchozími konvencemi vytváření názvů.
terraform plan \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Nasaďte prostředky pomocí plánu provádění Terraformu.
terraform apply --auto-approve \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Všimněte si výstupu.
Získání klíčů SSH
Pomocí výstupu z nasazení Terraformu si poznamenejte hodnoty následujících polí.
Veřejná IP adresa:
deployer_public_ip_address
.Uživatelské jméno trezoru klíčů:
deployer_kv_user_name
.Název privátního trezoru klíčů:
deployer_kv_prvt_name
.Název veřejného klíče:
deployer_public_key_secret_name
.Název privátního klíče:
deployer_private_key_secret_name
.
Spusťte skript po zpracování.
./post_deployment.sh
Extrahujte privátní klíč SSH:
az keyvault secret show \ --vault-name DEMOEUS2DEP00userE27 \ --name DEMO-EUS2-DEP00-sshkey | \ jq -r .value > sshkey
Extrahujte veřejný klíč SSH:
az keyvault secret show \ --vault-name DEMOEUS2DEP00userF6A \ --name DEMO-EUS2-DEP00-sshkey-pub | \ jq -r .value > sshkey.pub
Stáhněte si pár privátního a veřejného klíče. V nabídce Cloud Shellu vyberte Nahrát nebo stáhnout soubory>ke stažení.
Konfigurace instančního objektu
Nasazovač používá instanční objekt k nasazení prostředků do předplatného.
Přihlaste se k Azure CLI.
az login
Vytvořte instanční objekt. Nezapomeňte nahradit
<subscription-id>
identifikátorem předplatného Azure. Nahraďte<sp-name>
také názvem vašeho instančního objektu.az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscription-id>" --name="<sp-name>"
Všimněte si výstupu, který obsahuje informace o instančním objektu. Zkopírujte hodnoty následujících polí:
Identifikátor aplikace:
appId
.Heslo:
password
.Identifikátor tenanta:
tenant
.
Vytvořte přiřazení role pro instanční objekt. Nezapomeňte nahradit
<appId>
identifikátorem aplikace, který jste si poznamenali v předchozím kroku.az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
Následujícím způsobem přidejte klíče pro instanční objekt do trezoru klíčů. Nezapomeňte nahradit zástupné hodnoty informacemi, které jste si poznamenali v předchozích krocích. Nahraďte
<environment>
názvem vašeho prostředí, napříkladDEMO
.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>";
Konfigurace knihovny
Přihlaste se k nasazovanému nástroji pomocí klienta SSH a klíčů SSH, které jste získali během instalace nasazujícího nástroje. Pokud jako klienta SSH používáte PuTTY, před použitím převeďte klíče SSH na
.ppk
formát.Přejděte do umístění, kam jste naklonovali úložiště architektury Automation.
cd ~/Azure_SAP_Automated_Deployment/sap-automation
Volitelně si můžete rezervovat jinou větev než hlavní větev. Hlavní větev úložiště je výchozí.
Nahraďte
<branch>
názvem větve nebo hodnotou hash potvrzení, kterou chcete použít.git checkout <branch>
Zkontrolujte, jestli je vaše větev v očekávané revizi.
git rev-parse HEAD
Vytvořte pracovní adresář.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY; cd $_
Vytvořte konfigurační soubor JSON.
cat <<EOF > DEMO-EUS2-SAP_LIBRARY.json { "infrastructure": { "environment" : "DEMO", "region" : "eastus2" }, "deployer": { "environment" : "DEMO", "region" : "eastus2", "vnet" : "DEP00" } } EOF
Inicializujte Terraform.
terraform init ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
Vytvořte plán provádění Terraformu, který se řídí výchozími konvencemi vytváření názvů.
terraform plan \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_library
Nasaďte prostředky pomocí plánu provádění Terraformu.
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
Opětovné inicializace nasazení
Znovu inicializuje nasazujícího i knihovnu SAP.
Opětovné inicializace nasazovacího nástroje
Zůstaňte přihlášení k vašemu nasazovači v klientovi SSH. Nebo se znovu přihlaste.
Přejděte do pracovního adresáře, který jste vytvořili.
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LOCAL/DEMO-EUS2-DEP00-INFRASTRUCTURE
Vytvořte jiný soubor parametrů s názvem
backend
. Znovu postupujte podle výchozích zásad vytváření názvů. Použijteresource_group_name
název skupiny prostředků, ve které se nachází účet úložiště se soubory stavu Terraformu (.tfstate
). Nahraďtestorage_account_name
<tfstate_storage_account_name>
název účtu úložiště z nasazení knihovny SAP pro.tfstate
soubory. Zkombinujtekey
název skupiny prostředků nasazovače s příponou.terraform.tfstate
. Příklad: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
Znovu inicializovat Terraform.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Po zobrazení výzvy Chcete zkopírovat existující stav do nového back-endu?, zadejte
yes
.Odeberte místní soubor stavu.
rm terraform.tfstate*
Vytvořte plán provádění Terraformu. Znovu postupujte podle výchozích zásad vytváření názvů. Příklad:
terraform plan \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Použijte plán provádění Terraformu. Příklad:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Opětovné inicializace knihovny SAP
Zůstaňte přihlášení k vašemu nasazovači v klientovi SSH. Nebo se znovu přihlaste.
Přejděte do pracovního adresáře, který jste vytvořili.
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY
Vytvořte jiný soubor parametrů s názvem
backend
. Znovu postupujte podle výchozích zásad vytváření názvů. Použijteresource_group_name
název skupiny prostředků, ve které se nachází účet úložiště se soubory stavu Terraformu (.tfstate
). Nahraďtestorage_account_name
<tfstate_storage_account_name>
název účtu úložiště z nasazení knihovny SAP pro.tfstate
soubory. Zkombinujtekey
název skupiny prostředků nasazovače s příponou.terraform.tfstate
. Příklad: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
Přidejte nový pár klíč-hodnota bezprostředně za levou závorku (
{
) souborubackend
parametrů . Protfstate_resource_id
použití identifikátoru prostředku pro účet úložiště stavového souboru Terraformu. Vdeployer_tfstate_key
případě použijte název klíče pro soubor stavu nasazovače. Příklad:{ "tfstate_resource_id" : "<identifier>", "deployer_tfstate_key" : "<key>", "infrastructure": { ... }
Znovu inicializovat Terraform.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_library/
Po zobrazení výzvy Chcete zkopírovat existující stav do nového back-endu?, zadejte
yes
.Odeberte místní soubor stavu.
rm terraform.tfstate*
Vytvořte plán provádění Terraformu. Znovu postupujte podle výchozích zásad vytváření názvů. Příklad:
terraform plan \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/run/sap_library/
Použijte plán provádění Terraformu. Příklad:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/run/sap_library/
Nasazení virtuální sítě úloh
Dále nasaďte virtuální síť úloh SAP.
Zůstaňte přihlášení k vašemu nasazovači v klientovi SSH. Nebo se znovu přihlaste.
Vytvořte pracovní adresář. Postupujte podle výchozích konvencí vytváření názvů.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEMO-EUS2-SAP00-INFRASTRUCTURE; cd $_
Vytvořte soubor parametrů s názvem
backend
. Použijteresource_group_name
název skupiny prostředků, ve které se nachází účet úložiště se soubory stavu Terraformu (.tfstate
). Nahraďtestorage_account_name
<tfstate_storage_account_name>
název účtu úložiště z nasazení knihovny SAP pro.tfstate
soubory. Zkombinujtekey
název skupiny prostředků nasazovače s příponou.terraform.tfstate
. Příklad: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
Znovu inicializovat Terraform.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Vytvořte plán provádění Terraformu. Znovu postupujte podle výchozích zásad vytváření názvů. Příklad:
terraform plan \ --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Použijte plán provádění Terraformu. Příklad:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Jednotka nasazení SAP
Dále nastavte jednotku nasazení SAP.
Zůstaňte přihlášení k vašemu nasazovači v klientovi SSH. Nebo se znovu přihlaste
Vytvořte pracovní adresář. Postupujte podle výchozích konvencí vytváření názvů.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEMO-EUS2-SAP00-X00; cd $_
Vytvořte jiný soubor parametrů s názvem
backend
. Použijteresource_group_name
název skupiny prostředků, ve které se nachází účet úložiště se soubory stavu Terraformu (.tfstate
). Nahraďtestorage_account_name
<tfstate_storage_account_name>
název účtu úložiště z nasazení knihovny SAP pro.tfstate
soubory. Zkombinujtekey
název skupiny prostředků nasazovače s příponou.terraform.tfstate
. Příklad: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
Následujícím způsobem vytvořte soubor parametrů JSON se vstupními parametry. Nezapomeňte nahradit ukázkové hodnoty vlastními hodnotami.
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
Znovu inicializovat Terraform.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_system/
Vytvořte plán provádění Terraformu. Znovu postupujte podle výchozích zásad vytváření názvů. Příklad:
terraform plan \ --var-file=DEMO-EUS2-SAP00-X00.json \ ../../../sap-automation/deploy/terraform/run/sap_system/
Použijte plán provádění Terraformu. Příklad:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-SAP00-X00.json \ ../../../sap-automation/deploy/terraform/run/sap_system/
Konfigurace Ansible
Nakonfigurujte nastavení spuštěním playbooků Ansible. Tyto playbooky jsou umístěny v úložišti architektury automation v /sap-automation/deploy/ansible
.
Název souboru | Popis |
---|---|
playbook_01_os_base_config.yaml |
Základní konfigurace operačního systému (OS) |
playbook_02_os_sap_specific_config.yaml |
Konfigurace operačního systému specifického pro SAP |
playbook_03_bom_processing.yaml |
Stažení softwaru pro zpracování faktur SAP (BOM) |
playbook_04a_sap_scs_install.yaml |
Instalace centrálních služeb SAP (SCS) |
playbook_05a_hana_db_install.yaml |
Instalace databáze SAP HANA |
playbook_06a_sap_dbload.yaml |
Zavaděč databáze |
playbook_06b_sap_pas_install.yaml |
Instalace primárního aplikačního serveru SAP (PAS) |
playbook_06c_sap_app_install.yaml |
Instalace aplikačního serveru SAP |
playbook_06d_sap_web_install.yaml |
Instalace webového dispečeru SAP |
playbook_06_00_00_pacemaker.yaml |
Konfigurace clusteru Pacemaker |
playbook_06_00_01_pacemaker_scs.yaml |
Konfigurace Pacemakeru pro SCS |
playbook_06_00_03_pacemaker_hana.yaml |
Konfigurace Pacemakeru pro databázi SAP HANA |
Pokud chcete spustit playbook nebo více playbooků, použijte následující příkaz ansible-playbook
. Nezapomeňte změnit všechny zástupné hodnoty na vlastní informace:
- Přejděte
<your-sapbits-path>
na cestu k vašemu účtusapbits
úložiště pro knihovnu SAP. - Změňte
<azure-admin>
uživatelské jméno správce Azure. - Změňte
<ssh-key
> privátní klíč SSH, který chcete použít. - Podle potřeby změňte další hodnoty
--extra-vars
podle potřeby pro vaše nastavení.
Pokud narazíte na problémy, ujistěte se, že jste software SAP stáhli do svého prostředí Azure.
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