Kom igång med manuell distribution

Tillsammans med automatiserad distributionkan du även göra manuell distribution av SAP-ramverket för automatisering av distribution på Azure. Använd den här exempelkonfigurationen och exempelparameterfilerna för att komma igång.

Tips

Den här guiden beskriver bara hur du utför en manuell distribution. Om du vill komma igång snabbt kan du gå till guiden för automatisk distribution i stället.

De här stegen refererar till och använder standardkonventionerna för namngivning för Automation-ramverket. Exempelvärden används också för namngivning i hela koden. Till exempel är distribuerarnamnet DEMO-EUS2-DEP00-INFRASTRUCTURE . I det här exemplet är miljön en demo ( ), regionen är USA, östra DEMO 2 ( ) och det EUS2 virtuella distribuerarnätverket är DEP00 .

Förutsättningar

Konfiguration av distribuerare

Innan du börjar kontrollerar du att du har rätt Azure-prenumeration. Konfigurera sedan din distribuerare:

  1. Ladda ned och installera Terraform.
  2. Klona och konfigurera lagringsplatsen för Automation Framework på distribueraren.
  3. Initiera Terraform
  4. Hämta dina SSH-nycklar för användning i resten av distributionen.

Kontrollera Azure-prenumerationen

Kontrollera att du använder rätt Azure-prenumeration:

  1. Logga in på Azure Portal.

  2. Öppna Azure Cloud Shell.

  3. Kontrollera att du är i den prenumeration som du vill använda:

    az account list --output=table | grep -i true
    
  4. Om det behövs ändrar du den aktiva prenumerationen till den prenumeration som du vill använda.

Ladda ned Terraform

Ladda ned Terraform till din miljö:

  1. Skapa och navigera till en ny katalog, bin .

    mkdir -p ~/bin; cd $_
    
  2. Hämta lämplig Terraform-binärfil. Exempel:

    wget  https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
    
  3. Packa upp Terraform-binärfil. Exempel:

    unzip terraform_0.14.7_linux_amd64.zip
    
  4. Kontrollera terraform-nedladdningen:

    hash terraform
    
  5. Skapa en katalog för din automatiserade SAP-distribution.

    mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
    

Konfigurera lagringsplatsen

Klona och konfigurera lagringsplatsen för Automation Framework.

  1. Klona lagringsplatsen från GitHub:

    git clone https://github.com/Azure/sap-automation.git
    
  2. Gå till mappen sap-automation.

    cd  ~/Azure_SAP_Automated_Deployment/sap-automation
    
  3. Du kan också kolla in en annan gren än main-grenen. Huvudgrenen för lagringsplatsen är standard.

    1. Ersätt <branch> med grennamnet eller den commit-hash som du vill använda.

      git checkout <branch>
      
    2. Kontrollera att grenen har den förväntade revisionen.

      git rev-parse HEAD
      

Initiera Terraform

  1. Skapa en arbetskatalog. Katalognamnet måste följa standardkonventionerna för namngivning. Exempel:

    mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/DEMO-EUS2-DEP00-INFRASTRUCTURE; cd $_
    
  2. Skapa JSON-parameterfilen.

    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. Initiera Terraform.

    terraform init  ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
    
  4. Skapa en Terraform-körningsplan som följer standardkonventionerna för namngivning.

    terraform plan                                                                    \
                    --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json                    \
                    ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
    
  5. Använd terraform-körningsplanen för att distribuera resurserna.

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

Hämta SSH-nycklar

  1. Observera värdena för följande fält med hjälpav utdata från Terraform-distributionen.

    1. Offentlig IP-adress: deployer_public_ip_address .

    2. Key Vaults användarnamn: deployer_kv_user_name .

    3. Namnet på det privata nyckelvalvet: deployer_kv_prvt_name .

    4. Namn på offentlig nyckel: deployer_public_key_secret_name .

    5. Den privata nyckelns namn: deployer_private_key_secret_name .

  2. Kör efterbearbetningsskriptet.

    ./post_deployment.sh
    
  3. Extrahera den privata SSH-nyckeln:

    az keyvault secret show               \
      --vault-name DEMOEUS2DEP00userE27   \
      --name DEMO-EUS2-DEP00-sshkey     | \
      jq -r .value > sshkey
    
    
  4. Extrahera den offentliga SSH-nyckeln:

    az keyvault secret show               \
      --vault-name DEMOEUS2DEP00userF6A   \
      --name DEMO-EUS2-DEP00-sshkey-pub | \
      jq -r .value > sshkey.pub
    
    
  5. Ladda ned det privata och offentliga nyckelparet. På menyn Cloud Shell väljer du Upload/Ladda ned > filer Ladda ned.

Konfiguration av tjänstens huvudnamn

Distribueraren använder ett huvudnamn för tjänsten för att distribuera resurser till en prenumeration.

  1. Logga in på Azure CLI.

    az login
    
  2. Skapa ett huvudnamn för tjänsten. Se till att ersätta med <subscription-id> id:t för din Azure-prenumeration. Ersätt också <sp-name> med ett namn för tjänstens huvudnamn.

    az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscription-id>" --name="<sp-name>"
    
  3. Observera utdata, som innehåller information om tjänstens huvudnamn. Kopiera värdena för följande fält:

    1. Programidentifierare: appId .

    2. Lösenord: password .

    3. Klientorganisations-ID: tenant .

  4. Skapa en rolltilldelning för tjänstens huvudnamn. Ersätt med <appId> programidentifieraren som du antecknade i föregående steg.

    az role assignment create --assignee <appId> --role "User Access Administrator"
    
  5. Lägg till nycklar för tjänstens huvudnamn till nyckelvalvet på följande sätt. Se till att ersätta platshållarvärdena med den information som du antecknade i föregående steg. Ersätt <environment> med namnet på din miljö, till exempel 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>";
    

Bibliotekskonfiguration

  1. Logga in på distribueraren med hjälp av SSH-klienten och de SSH-nycklar som du hämtade under distributionsprogrammet. Om du använder PuTTY som SSH-klient konverterar du SSH-nycklarna till .ppk format innan du använder dem.

  2. Gå till den plats där du klonade lagringsplatsen för Automation Framework.

    cd  ~/Azure_SAP_Automated_Deployment/sap-automation
    
  3. Du kan också kolla in en annan gren än main-grenen. Huvudgrenen för lagringsplatsen är standard.

    1. Ersätt <branch> med grennamnet eller den commit-hash som du vill använda.

      git checkout <branch>
      
    2. Kontrollera att grenen har den förväntade revisionen.

      git rev-parse HEAD
      
  4. Skapa en arbetskatalog.

    mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY; cd $_
    
  5. Skapa JSON-konfigurationsfilen.

    cat <<EOF > DEMO-EUS2-SAP_LIBRARY.json
    {
      "infrastructure": {
        "environment"                         : "DEMO",
        "region"                              : "eastus2"
      },
      "deployer": {
        "environment"                         : "DEMO",
        "region"                              : "eastus2",
        "vnet"                                : "DEP00"
      }
    }
    EOF
    
  6. Initiera Terraform.

    terraform init  ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
    
  7. Skapa en Terraform-körningsplan som följer standardkonventionerna för namngivning.

    terraform plan                                                                  \
                --var-file=DEMO-EUS2-SAP_LIBRARY.json                           \
                ../../../sap-automation/deploy/terraform/bootstrap/sap_library
    
    
  8. Använd terraform-körningsplanen för att distribuera resurserna.

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

Initiera om distributionen

Initiera om både distribueraren och SAP-biblioteket.

Initiera om distribueraren

  1. Håll dig inloggad på din distribuerare i SSH-klienten. Eller så loggar du in igen.

  2. Gå till arbetskatalogen som du skapade.

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LOCAL/DEMO-EUS2-DEP00-INFRASTRUCTURE
    
  3. Skapa en annan parameterfil med namnet backend . Följ återigen standardkonventionerna för namngivning. För resource_group_name använder du namnet på resursgruppen där lagringskontot med Terraform-tillståndsfilerna ( ) .tfstate finns. För storage_account_name ersätter <tfstate_storage_account_name> du med namnet på lagringskontot från SAP-biblioteksdistributionen för .tfstate filer. För key kombinerar du distributionens resursgruppsnamn med tillägget .terraform.tfstate . Exempel:

    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. Initiera Terraform igen.

    terraform init  --backend-config backend                                        \
                    ../../../sap-automation/deploy/terraform/run/sap_deployer/
    
  5. När du får frågan Vill du kopiera befintligt tillstånd till den nya backend? anger du yes .

  6. Ta bort den lokala tillståndsfilen.

    rm terraform.tfstate*
    
  7. Skapa en Terraform-körningsplan. Följ återigen standardkonventionerna för namngivning. Exempel:

    terraform plan                                                                  \
                    --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json                  \
                    ../../../sap-automation/deploy/terraform/run/sap_deployer/
    
  8. Tillämpa Terraform-körningsplanen. Exempel:

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

Initiera om SAP-biblioteket

  1. Förbli inloggad på din distribuerare i SSH-klienten. Eller så loggar du in igen.

  2. Gå till arbetskatalogen som du skapade.

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY
    
  3. Skapa en annan parameterfil med namnet backend . Följ återigen standardkonventionerna för namngivning. För resource_group_name använder du namnet på resursgruppen där lagringskontot med Terraform-tillståndsfilerna ( ) .tfstate finns. För storage_account_name ersätter <tfstate_storage_account_name> du med namnet på lagringskontot från SAP-biblioteksdistributionen för .tfstate filer. För key kombinerar du distributionens resursgruppsnamn med tillägget .terraform.tfstate . Exempel:

    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. Lägg till ett nytt nyckel/värde-par omedelbart efter inledande hakparentes ( { ) för parameterfilen backend . För tfstate_resource_id använder du resursidentifieraren för Lagringskontot för Terraform-tillståndsfilen. För deployer_tfstate_key använder du nyckelnamnet för filen med distribuerartillståndet. Exempel:

    {
        "tfstate_resource_id"                   : "<identifier>",
        "deployer_tfstate_key"                  : "<key>",
        "infrastructure": {
            ...
    }
    
  5. Initiera Terraform igen.

    terraform init  --backend-config backend                                          \
                    ../../../sap-automation/deploy/terraform/run/sap_library/
    
  6. När du får frågan Vill du kopiera befintligt tillstånd till den nya backend? anger du yes .

  7. Ta bort den lokala tillståndsfilen.

    rm terraform.tfstate*
    
  8. Skapa en Terraform-körningsplan. Följ återigen standardkonventionerna för namngivning. Exempel:

    terraform plan                                                                    \
                    --var-file=DEMO-EUS2-SAP_LIBRARY.json                             \
                    ../../../sap-automation/deploy/terraform/run/sap_library/
    
  9. Tillämpa Terraform-körningsplanen. Exempel:

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

Distribuera virtuellt arbetsbelastningsnätverk

Distribuera sedan det virtuella SAP-arbetsbelastningsnätverket.

  1. Förbli inloggad på din distribuerare i SSH-klienten. Eller så loggar du in igen.

  2. Skapa en arbetskatalog. Följ standardkonventionerna för namngivning.

    mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEMO-EUS2-SAP00-INFRASTRUCTURE; cd $_
    
  3. Skapa en parameterfil med namnet backend . För resource_group_name använder du namnet på resursgruppen där lagringskontot med Terraform-tillståndsfilerna ( ) .tfstate finns. För storage_account_name ersätter <tfstate_storage_account_name> du med namnet på lagringskontot från SAP-biblioteksdistributionen för .tfstate filer. För key kombinerar du distributionens resursgruppsnamn med tillägget .terraform.tfstate . Exempel:

    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. Initiera Terraform igen.

    terraform init  --backend-config backend                                        \
                    ../../../sap-automation/deploy/terraform/run/sap_landscape/
    
  5. Skapa en Terraform-körningsplan. Följ återigen standardkonventionerna för namngivning. Exempel:

    terraform plan                                                                  \
                --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json                  \
                ../../../sap-automation/deploy/terraform/run/sap_landscape/
    
  6. Tillämpa Terraform-körningsplanen. Exempel:

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

SAP-distributionsenhet

Konfigurera sedan SAP-distributionsenheten.

  1. Förbli inloggad på din distribuerare i SSH-klienten. Eller logga in igen

  2. Skapa en arbetskatalog. Följ standardkonventionerna för namngivning.

    mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEMO-EUS2-SAP00-X00; cd $_
    
  3. Skapa en annan parameterfil med namnet backend . För resource_group_name använder du namnet på resursgruppen där lagringskontot med Terraform-tillståndsfilerna ( ) .tfstate finns. För storage_account_name ersätter <tfstate_storage_account_name> du med namnet på lagringskontot från SAP-biblioteksdistributionen för .tfstate filer. För key kombinerar du distributionens resursgruppsnamn med tillägget .terraform.tfstate . Exempel:

    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. Skapa en JSON-parameterfil med indataparametrar enligt följande. Ersätt exempelvärdena med dina egna.

    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. Initiera Terraform igen.

    terraform init  --backend-config backend                                        \
                    ../../../sap-automation/deploy/terraform/run/sap_system/
    
    
  6. Skapa en Terraform-körningsplan. Följ återigen standardkonventionerna för namngivning. Exempel:

    terraform plan                                                                  \
                    --var-file=DEMO-EUS2-SAP00-X00.json                             \
                    ../../../sap-automation/deploy/terraform/run/sap_system/
    
  7. Tillämpa Terraform-körningsplanen. Exempel:

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

Ansible-konfiguration

Konfigurera konfigurationen genom att köra Ansible-spelböcker. Dessa spelböcker finns på lagringsplatsen för Automation Framework i /sap-automation/deploy/ansible .

Filnamn Description
playbook_01_os_base_config.yaml Konfiguration av basoperativsystem (OS)
playbook_02_os_sap_specific_config.yaml SAP-specifik OS-konfiguration
playbook_03_bom_processing.yaml Nedladdning av SAP BOM-bearbetningsprogram (Bill of Materials)
playbook_04a_sap_scs_install.yaml Installation av CENTRALA SAP-tjänster (SCS)
playbook_05a_hana_db_install.yaml SAP HANA databasinstallation
playbook_06a_sap_dbload.yaml Databasinläsare
playbook_06b_sap_pas_install.yaml SAP-installation av primär programserver (PAS)
playbook_06c_sap_app_install.yaml Installation av SAP-programserver
playbook_06d_sap_web_install.yaml Installation av SAP web dispatcher
playbook_06_00_00_pacemaker.yaml Klusterkonfiguration för pacemaker
playbook_06_00_01_pacemaker_scs.yaml Pacemakerkonfiguration för SCS
playbook_06_00_03_pacemaker_hana.yaml Pacemakerkonfiguration för SAP HANA databas

Om du vill köra en spelbok eller flera spelböcker använder du kommandot ansible-playbook på följande sätt. Se till att ändra alla platshållarvärden till din egen information:

  • Ändra <your-sapbits-path> sökvägen till ditt lagringskonto sapbits för SAP-biblioteket.
  • Ändra <azure-admin> till användarnamnet för Azure-administratören.
  • Ändra <ssh-key> till den privata SSH-nyckel som du vill använda.
  • Ändra andra värden under --extra-vars efter behov för dina inställningar.

Om du får problem kontrollerar du att du har laddat ned SAP-programvaran till din Azure-miljö.

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

Nästa steg