Začínáme s ručním nasazením

Společně s automatizovaným nasazením můžete také ručně nasazat rozhraní pro automatizaci nasazení SAP v Azure. Pro začátek použijte tento příklad konfigurace a ukázkové soubory parametrů.

Tip

Tato příručka popisuje pouze to, jak provést ruční nasazení. Pokud chcete rychle začít, podívejte se místo toho na průvodce automatizovaným nasazením .

Tyto kroky odkazují na výchozí zásady vytváření názvů pro rozhraní automatizace a používají je. Příklady hodnot se také používají pro pojmenování v celém kódu. Například nasazovač má název DEMO-EUS2-DEP00-INFRASTRUCTURE. V tomto příkladu je prostředí ukázka (DEMO), oblast je USA – východ 2 (EUS2) a virtuální síť nasazování je DEP00.

Požadavky

Nastavení deployeru

Než začnete, zkontrolujte, že jste ve správném předplatném Azure. Pak nastavte nasazovač:

  1. Stáhněte a nainstalujte Terraform.
  2. Naklonujte a nakonfigurujte úložiště architektury Automation na nasazovači.
  3. Inicializace Terraformu
  4. 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:

  1. Přihlaste se k webu Azure Portal.

  2. Otevřete Azure Cloud Shell.

  3. Zkontrolujte, že jste v předplatném, které chcete použít:

    az account list --output=table | grep -i true
    
  4. V případě potřeby změňte aktivní předplatné na předplatné, které chcete použít.

Stažení Terraformu

Stáhněte si Terraform do svého prostředí:

  1. Vytvořte a přejděte do nového adresáře bin.

    mkdir -p ~/bin; cd $_
    
  2. Načtěte příslušný binární soubor Terraformu. Například:

    wget  https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
    
  3. Rozbalte binární soubor Terraformu. Například:

    unzip terraform_0.14.7_linux_amd64.zip
    
  4. Ověřte stažení Terraformu:

    hash terraform
    
  5. Vytvořte adresář pro vaše automatizované nasazení SAP.

    mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
    

Nastavení úložiště

Naklonujte a nakonfigurujte úložiště architektury Automation.

  1. Naklonování úložiště z GitHub:

    git clone https://github.com/Azure/sap-automation.git
    
  2. Přejděte do složky sap-automation.

    cd  ~/Azure_SAP_Automated_Deployment/sap-automation
    
  3. Volitelně se můžete podívat na jinou větev než hlavní větev. Výchozí je hlavní větev úložiště.

    1. Nahraďte <branch> názvem větve nebo hodnotou hash potvrzení, které chcete použít.

      git checkout <branch>
      
    2. Zkontrolujte, že vaše větev je v očekávané revizi.

      git rev-parse HEAD
      

Inicializace Terraformu

  1. Vytvořte pracovní adresář. Název adresáře musí dodržovat výchozí zásady vytváření názvů. Například:

    mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/DEMO-EUS2-DEP00-INFRASTRUCTURE; cd $_
    
  2. 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
    
  3. Inicializujte Terraform.

    terraform init  ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
    
  4. Vytvořte plán provádění Terraformu, který dodržuje výchozí zásady vytváření názvů.

    terraform plan                                                                    \
                    --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json                    \
                    ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
    
  5. 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/
    
  6. Poznamenejte si výstup.

Získání klíčů SSH

  1. Pomocí výstupu z nasazení Terraformu si poznamenejte hodnoty pro následující pole.

    1. Veřejná IP adresa: deployer_public_ip_address.

    2. Uživatelské jméno trezoru klíčů: deployer_kv_user_name.

    3. Název trezoru privátních klíčů: deployer_kv_prvt_name.

    4. Název veřejného klíče: deployer_public_key_secret_name.

    5. Název privátního klíče: deployer_private_key_secret_name.

  2. Spusťte skript pro zpracování.

    ./post_deployment.sh
    
  3. Extrahujte privátní klíč SSH:

    az keyvault secret show               \
      --vault-name DEMOEUS2DEP00userE27   \
      --name DEMO-EUS2-DEP00-sshkey     | \
      jq -r .value > sshkey
    
    
  4. Extrahujte veřejný klíč SSH:

    az keyvault secret show               \
      --vault-name DEMOEUS2DEP00userF6A   \
      --name DEMO-EUS2-DEP00-sshkey-pub | \
      jq -r .value > sshkey.pub
    
    
  5. Stáhněte si pár privátních a veřejných klíčů. V nabídce Cloud Shell vyberte Stáhnout Upload/Stáhnout soubory>.

Konfigurace objektu služby

Nasazovač používá k nasazení prostředků do předplatného objekt služby.

  1. Přihlaste se k Azure CLI.

    az login
    
  2. Vytvořte objekt služby. Nezapomeňte nahradit identifikátorem <subscription-id> vašeho předplatného Azure. Nahraďte <sp-name> také názvem vašeho objektu služby.

    az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscription-id>" --name="<sp-name>"
    
  3. Všimněte si výstupu, který obsahuje informace o objektu služby. Zkopírujte hodnoty následujících polí:

    1. Identifikátor aplikace: appId.

    2. Heslo: password.

    3. Identifikátor tenanta: tenant.

  4. Vytvořte přiřazení role pro objekt služby. Nezapomeňte nahradit identifikátorem <appId> aplikace, který jste si zapište v předchozím kroku.

    az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
    
  5. Přidejte klíče pro objekt služby do trezoru klíčů následujícím způsobem. Nezapomeňte nahradit zástupné hodnoty informacemi, které jste si v předchozích krocích prošimli. Nahraďte <environment> názvem vašeho prostředí, například DEMO.

    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

  1. Přihlaste se k nasazovači pomocí klienta SSH a klíčů SSH, které jste získali během instalace nasazování. Pokud jako klienta SSH používáte PuTTY, převeďte klíče SSH před .ppk použitím na formát.

  2. Přejděte do místa, kam jste naklonovali úložiště architektury Automation.

    cd  ~/Azure_SAP_Automated_Deployment/sap-automation
    
  3. Volitelně se můžete podívat na jinou větev než hlavní větev. Výchozí je hlavní větev úložiště.

    1. Nahraďte <branch> názvem větve nebo hodnotou hash potvrzení, které chcete použít.

      git checkout <branch>
      
    2. Zkontrolujte, že vaše větev je v očekávané revizi.

      git rev-parse HEAD
      
  4. Vytvořte pracovní adresář.

    mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY; cd $_
    
  5. 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
    
  6. Inicializujte Terraform.

    terraform init  ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
    
  7. Vytvořte plán provádění Terraformu, který dodržuje výchozí zásady vytváření názvů.

    terraform plan                                                                  \
                --var-file=DEMO-EUS2-SAP_LIBRARY.json                           \
                ../../../sap-automation/deploy/terraform/bootstrap/sap_library
    
    
  8. 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 inicializujte nasazovač i knihovnu SAP.

Opětovná inicializace nasazování

  1. Zůstaňte přihlášení k vašemu nástroji pro nasazení v klientovi SSH. Nebo se znovu přihlaste.

  2. Přejděte do pracovního adresáře, který jste vytvořili.

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LOCAL/DEMO-EUS2-DEP00-INFRASTRUCTURE
    
  3. Vytvořte další soubor parametrů s názvem backend . Znovu použijte výchozí zásady vytváření názvů. resource_group_nameV případě použijte název skupiny prostředků, ve které se nachází účet úložiště se soubory stavu terraformu ( .tfstate ). storage_account_nameV případě nahraďte <tfstate_storage_account_name> názvem účtu úložiště z nasazení knihovny SAP pro .tfstate soubory. keyV případě kombinace názvu skupiny prostředků Deploy 's s příponou .terraform.tfstate . Napří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
    
  4. Inicializujte Terraformu znovu.

    terraform init  --backend-config backend                                        \
                    ../../../sap-automation/deploy/terraform/run/sap_deployer/
    
  5. Po zobrazení výzvy chcete zkopírovat stávající stav do nového back-endu?zadejte yes .

  6. Odeberte soubor místního stavu.

    rm terraform.tfstate*
    
  7. Vytvořte plán spuštění Terraformu. Znovu použijte výchozí zásady vytváření názvů. Například:

    terraform plan                                                                  \
                    --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json                  \
                    ../../../sap-automation/deploy/terraform/run/sap_deployer/
    
  8. Použijte plán spuštění Terraformu. Například:

    terraform apply --auto-approve                                                  \
                    --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json                  \
                    ../../../sap-automation/deploy/terraform/run/sap_deployer/
    

Opětovná inicializace knihovny SAP

  1. Zůstaňte přihlášení k vašemu nástroji pro nasazení v klientovi SSH. Nebo se znovu přihlaste.

  2. Přejděte do pracovního adresáře, který jste vytvořili.

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY
    
  3. Vytvořte další soubor parametrů s názvem backend . Znovu použijte výchozí zásady vytváření názvů. resource_group_nameV případě použijte název skupiny prostředků, ve které se nachází účet úložiště se soubory stavu terraformu ( .tfstate ). storage_account_nameV případě nahraďte <tfstate_storage_account_name> názvem účtu úložiště z nasazení knihovny SAP pro .tfstate soubory. keyV případě kombinace názvu skupiny prostředků Deploy 's s příponou .terraform.tfstate . Napří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
    
  4. Přidejte novou dvojici klíč-hodnota hned za levou hranatou závorku ( { ) souboru backend parametrů. Pro tfstate_resource_id použijte identifikátor prostředku pro účet úložiště stavu terraformu. Pro deployer_tfstate_key použijte název souboru stavu nástroje Deploy. Například:

    {
        "tfstate_resource_id"                   : "<identifier>",
        "deployer_tfstate_key"                  : "<key>",
        "infrastructure": {
            ...
    }
    
  5. Inicializujte Terraformu znovu.

    terraform init  --backend-config backend                                          \
                    ../../../sap-automation/deploy/terraform/run/sap_library/
    
  6. Po zobrazení výzvy chcete zkopírovat stávající stav do nového back-endu?zadejte yes .

  7. Odeberte soubor místního stavu.

    rm terraform.tfstate*
    
  8. Vytvořte plán spuštění Terraformu. Znovu použijte výchozí zásady vytváření názvů. Například:

    terraform plan                                                                    \
                    --var-file=DEMO-EUS2-SAP_LIBRARY.json                             \
                    ../../../sap-automation/deploy/terraform/run/sap_library/
    
  9. Použijte plán spuštění Terraformu. Například:

    terraform apply --auto-approve                                                    \
                    --var-file=DEMO-EUS2-SAP_LIBRARY.json                             \
                    ../../../sap-automation/deploy/terraform/run/sap_library/
    

Nasazení virtuální sítě zatížení

V dalším kroku nasaďte virtuální síť pro úlohy SAP.

  1. Zůstaňte přihlášení k vašemu nástroji pro nasazení v klientovi SSH. Nebo se znovu přihlaste.

  2. Vytvořte pracovní adresář. Použijte výchozí zásady vytváření názvů.

    mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEMO-EUS2-SAP00-INFRASTRUCTURE; cd $_
    
  3. Vytvořte soubor parametrů s názvem backend . resource_group_nameV případě použijte název skupiny prostředků, ve které se nachází účet úložiště se soubory stavu terraformu ( .tfstate ). storage_account_nameV případě nahraďte <tfstate_storage_account_name> názvem účtu úložiště z nasazení knihovny SAP pro .tfstate soubory. keyV případě kombinace názvu skupiny prostředků Deploy 's s příponou .terraform.tfstate . Napří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
    
  4. Inicializujte Terraformu znovu.

    terraform init  --backend-config backend                                        \
                    ../../../sap-automation/deploy/terraform/run/sap_landscape/
    
  5. Vytvořte plán spuštění Terraformu. Znovu použijte výchozí zásady vytváření názvů. Například:

    terraform plan                                                                  \
                --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json                  \
                ../../../sap-automation/deploy/terraform/run/sap_landscape/
    
  6. Použijte plán spuštění Terraformu. Například:

    terraform apply --auto-approve                                                  \
                    --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json                  \
                    ../../../sap-automation/deploy/terraform/run/sap_landscape/
    

Jednotka nasazení SAP

V dalším kroku nastavte jednotku nasazení SAP.

  1. Zůstaňte přihlášení k vašemu nástroji pro nasazení v klientovi SSH. Nebo se znovu přihlaste.

  2. Vytvořte pracovní adresář. Použijte výchozí zásady vytváření názvů.

    mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEMO-EUS2-SAP00-X00; cd $_
    
  3. Vytvořte další soubor parametrů s názvem backend . resource_group_nameV případě použijte název skupiny prostředků, ve které se nachází účet úložiště se soubory stavu terraformu ( .tfstate ). storage_account_nameV případě nahraďte <tfstate_storage_account_name> názvem účtu úložiště z nasazení knihovny SAP pro .tfstate soubory. keyV případě kombinace názvu skupiny prostředků Deploy 's s příponou .terraform.tfstate . Napří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
    
  4. Vytvořte soubor parametrů JSON se vstupními parametry následujícím způsobem. Nezapomeňte nahradit vzorové hodnoty vlastními.

    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
    
  5. Inicializujte Terraformu znovu.

    terraform init  --backend-config backend                                        \
                    ../../../sap-automation/deploy/terraform/run/sap_system/
    
    
  6. Vytvořte plán spuštění Terraformu. Znovu použijte výchozí zásady vytváření názvů. Například:

    terraform plan                                                                  \
                    --var-file=DEMO-EUS2-SAP00-X00.json                             \
                    ../../../sap-automation/deploy/terraform/run/sap_system/
    
  7. Použijte plán spuštění Terraformu. Napří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 Ansible playbooky. Tyto playbooky jsou umístěné v úložišti rozhraní Automation v /sap-automation/deploy/ansible .

Bitmap Description
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á pro SAP
playbook_03_bom_processing.yaml Stažení softwaru pro zpracování kusovníku SAP
playbook_04a_sap_scs_install.yaml Instalace služby SAP Central Services (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 serveru SAP – primární aplikační server (PAS)
playbook_06c_sap_app_install.yaml Instalace aplikačního serveru SAP
playbook_06d_sap_web_install.yaml Instalace webového dispečera SAP
playbook_06_00_00_pacemaker.yaml Konfigurace clusteru Pacemaker
playbook_06_00_01_pacemaker_scs.yaml Konfigurace Pacemaker pro SCS
playbook_06_00_03_pacemaker_hana.yaml Konfigurace Pacemaker pro databázi SAP HANA

Chcete-li spustit PlayBook nebo více playbooky, použijte příkaz ansible-playbook následujícím způsobem. Nezapomeňte změnit všechny zástupné hodnoty na vlastní informace:

  • Přejděte <your-sapbits-path> na cestu k vašemu účtu sapbits úložiště pro knihovnu SAP.
  • Přejděte <azure-admin> na uživatelské jméno správce Azure.
  • Změňte <ssh-key> na privátní klíč SSH, který chcete použít.
  • Změňte další hodnoty podle --extra-vars potřeby pro nastavení.

Pokud se setkáte s problémy, ujistěte se, že jste stáhli software SAP do 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

Další kroky