Kom igång med manuell distribution
Tillsammans med automatiserad distribution kan du även utföra manuell distribution av SAP i Azure Deployment Automation Framework. Använd det här exemplet på konfigurations- och exempelparameterfiler för att komma igång.
Dricks
Den här guiden beskriver bara hur du utför en manuell distribution. Om du vill komma igång snabbt kan du läsa guiden för automatiserad distribution i stället.
De här stegen refererar till och använder standardnamngivningskonventionen för automationsramverket. Exempelvärden används också för namngivning i hela koden. Distributionsnamnet är DEMO-EUS2-DEP00-INFRASTRUCTURE
till exempel . I det här exemplet är miljön en demo (DEMO
), regionen är USA, östra 2 (EUS2
) och det virtuella distributionsnätverket är DEP00
.
Förutsättningar
- En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Ett Azure-konto med behörighet att skapa ett huvudnamn för tjänsten.
- En nedladdning av SAP-programvaran i din Azure-miljö.
Installation av distribuerare
Kontrollera att du har rätt Azure-prenumeration innan du börjar. Konfigurera sedan din distribuerare:
- Ladda ned och installera Terraform.
- Klona och konfigurera automation framework-lagringsplatsen på distribueraren.
- Initiera Terraform
- 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:
Logga in på Azure-portalen.
Kontrollera att du är i den prenumeration som du vill använda:
az account list --output=table | grep -i true
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ö:
Skapa och navigera till en ny katalog,
bin
.mkdir -p ~/bin; cd $_
Hämta lämplig Terraform-binärfil. Till exempel:
wget https://releases.hashicorp.com/terraform/0.14.7/terraform_0.14.7_linux_amd64.zip
Packa upp Terraform-binärfilen. Till exempel:
unzip terraform_0.14.7_linux_amd64.zip
Verifiera din Terraform-nedladdning:
hash terraform
Skapa en katalog för den automatiserade SAP-distributionen.
mkdir -p ~/Azure_SAP_Automated_Deployment; cd $_
Konfigurera lagringsplats
Klona och konfigurera automation framework-lagringsplatsen.
Klona lagringsplatsen från GitHub:
git clone https://github.com/Azure/sap-automation.git
Gå till mappen
sap-automation
.cd ~/Azure_SAP_Automated_Deployment/sap-automation
Du kan också checka ut en annan gren än huvudgrenen. Huvudgrenen för lagringsplatsen är standard.
Ersätt
<branch>
med det grennamn eller incheckningshash som du vill använda.git checkout <branch>
Kontrollera att din gren har den förväntade revisionen.
git rev-parse HEAD
Initiera Terraform
Skapa en arbetskatalog. Katalognamnet måste följa standardnamnkonventionen. Till exempel:
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/DEMO-EUS2-DEP00-INFRASTRUCTURE; cd $_
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
Initiera Terraform.
terraform init ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
Skapa en Terraform-körningsplan som följer standardnamngivningskonventionen.
terraform plan \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_deployer/
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/
Observera utdata.
Hämta SSH-nycklar
Observera värdena för följande fält med hjälp av utdata från Terraform-distributionen.
Offentlig IP-adress:
deployer_public_ip_address
.Nyckelvalvets användarnamn:
deployer_kv_user_name
.Namnet på det privata nyckelvalvet:
deployer_kv_prvt_name
.Namnet på den offentliga nyckeln:
deployer_public_key_secret_name
.Namnet på den privata nyckeln:
deployer_private_key_secret_name
.
Kör skriptet efter bearbetningen.
./post_deployment.sh
Extrahera den privata SSH-nyckeln:
az keyvault secret show \ --vault-name DEMOEUS2DEP00userE27 \ --name DEMO-EUS2-DEP00-sshkey | \ jq -r .value > sshkey
Extrahera den offentliga SSH-nyckeln:
az keyvault secret show \ --vault-name DEMOEUS2DEP00userF6A \ --name DEMO-EUS2-DEP00-sshkey-pub | \ jq -r .value > sshkey.pub
Ladda ned det privata och offentliga nyckelparet. I Cloud Shell-menyn väljer du Ladda upp/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.
Logga in på Azure CLI.
az login
Skapa ett huvudnamn för tjänsten. Se till att ersätta
<subscription-id>
med din Azure-prenumerationsidentifierare. Ersätt<sp-name>
även med ett namn för tjänstens huvudnamn.az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscription-id>" --name="<sp-name>"
Observera utdata, som innehåller information om tjänstens huvudnamn. Kopiera ned värdena för följande fält:
Programidentifierare:
appId
.Lösenord:
password
.Klientidentifierare:
tenant
.
Skapa en rolltilldelning för tjänstens huvudnamn. Ersätt
<appId>
med programidentifieraren som du antecknade i föregående steg.az role assignment create --assignee <appId> --role "User Access Administrator" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
Lägg till nycklar för tjänstens huvudnamn i nyckelvalvet enligt följande. Ersätt platshållarvärdena med den information som du antecknade i föregående steg. Ersätt
<environment>
med namnet på din miljö, till exempelDEMO
.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
Logga in på distribueraren med hjälp av din SSH-klient och de SSH-nycklar som du hämtade under konfigurationen av distribueraren. Om du använder PuTTY som SSH-klient konverterar du SSH-nycklarna till
.ppk
format innan du använder den.Navigera till den plats där du klonade automation Framework-lagringsplatsen.
cd ~/Azure_SAP_Automated_Deployment/sap-automation
Du kan också checka ut en annan gren än huvudgrenen. Huvudgrenen för lagringsplatsen är standard.
Ersätt
<branch>
med det grennamn eller incheckningshash som du vill använda.git checkout <branch>
Kontrollera att din gren har den förväntade revisionen.
git rev-parse HEAD
Skapa en arbetskatalog.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY; cd $_
Skapa JSON-konfigurationsfilen.
cat <<EOF > DEMO-EUS2-SAP_LIBRARY.json { "infrastructure": { "environment" : "DEMO", "region" : "eastus2" }, "deployer": { "environment" : "DEMO", "region" : "eastus2", "vnet" : "DEP00" } } EOF
Initiera Terraform.
terraform init ../../../sap-automation/deploy/terraform/bootstrap/sap_library/
Skapa en Terraform-körningsplan som följer standardnamngivningskonventionen.
terraform plan \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/bootstrap/sap_library
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 distributionsverktyget
Håll dig inloggad på din distribuerare i SSH-klienten. Eller logga in igen.
Gå till arbetskatalogen som du skapade.
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LOCAL/DEMO-EUS2-DEP00-INFRASTRUCTURE
Skapa en annan parameterfil med namnet
backend
. Följ återigen standardkonventionerna för namngivning. Förresource_group_name
använder du namnet på resursgruppen där lagringskontot med dina Terraform-tillståndsfiler (.tfstate
) finns. Förstorage_account_name
ersätter du<tfstate_storage_account_name>
med namnet på lagringskontot från SAP-biblioteksdistributionen för.tfstate
filer. Förkey
kombinerar du distributionsverktygets resursgruppnamn med tillägget.terraform.tfstate
. Till 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
Initiera Terraform igen.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
När du uppmanas att kopiera befintligt tillstånd till den nya serverdelen? anger du
yes
.Ta bort den lokala tillståndsfilen.
rm terraform.tfstate*
Skapa en Terraform-körningsplan. Följ återigen standardkonventionerna för namngivning. Till exempel:
terraform plan \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Tillämpa Terraform-körningsplanen. Till exempel:
terraform apply --auto-approve \ --var-file=DEMO-EUS2-DEP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_deployer/
Initiera SAP-bibliotek igen
Håll dig inloggad på din distribuerare i SSH-klienten. Eller logga in igen.
Gå till arbetskatalogen som du skapade.
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/DEMO-EUS2-SAP_LIBRARY
Skapa en annan parameterfil med namnet
backend
. Följ återigen standardkonventionerna för namngivning. Förresource_group_name
använder du namnet på resursgruppen där lagringskontot med dina Terraform-tillståndsfiler (.tfstate
) finns. Förstorage_account_name
ersätter du<tfstate_storage_account_name>
med namnet på lagringskontot från SAP-biblioteksdistributionen för.tfstate
filer. Förkey
kombinerar du distributionsverktygets resursgruppnamn med tillägget.terraform.tfstate
. Till 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
Lägg till ett nytt nyckel/värde-par omedelbart efter den inledande hakparentesen (
{
) för parameterfilenbackend
. Förtfstate_resource_id
använder du resursidentifieraren för lagringskontot för Terraform-tillståndsfilen. Fördeployer_tfstate_key
använder du nyckelnamnet för distributionstillståndsfilen. Till exempel:{ "tfstate_resource_id" : "<identifier>", "deployer_tfstate_key" : "<key>", "infrastructure": { ... }
Initiera Terraform igen.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_library/
När du uppmanas att kopiera befintligt tillstånd till den nya serverdelen? anger du
yes
.Ta bort den lokala tillståndsfilen.
rm terraform.tfstate*
Skapa en Terraform-körningsplan. Följ återigen standardkonventionerna för namngivning. Till exempel:
terraform plan \ --var-file=DEMO-EUS2-SAP_LIBRARY.json \ ../../../sap-automation/deploy/terraform/run/sap_library/
Tillämpa Terraform-körningsplanen. Till 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.
Håll dig inloggad på din distribuerare i SSH-klienten. Eller logga in igen.
Skapa en arbetskatalog. Följ standardnamngivningskonventionerna.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEMO-EUS2-SAP00-INFRASTRUCTURE; cd $_
Skapa en parameterfil med namnet
backend
. Förresource_group_name
använder du namnet på resursgruppen där lagringskontot med dina Terraform-tillståndsfiler (.tfstate
) finns. Förstorage_account_name
ersätter du<tfstate_storage_account_name>
med namnet på lagringskontot från SAP-biblioteksdistributionen för.tfstate
filer. Förkey
kombinerar du distributionsverktygets resursgruppnamn med tillägget.terraform.tfstate
. Till 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
Initiera Terraform igen.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Skapa en Terraform-körningsplan. Följ återigen standardkonventionerna för namngivning. Till exempel:
terraform plan \ --var-file=DEMO-EUS2-SAP00-INFRASTRUCTURE.json \ ../../../sap-automation/deploy/terraform/run/sap_landscape/
Tillämpa Terraform-körningsplanen. Till 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.
Håll dig inloggad på din distribuerare i SSH-klienten. Eller logga in igen
Skapa en arbetskatalog. Följ standardnamngivningskonventionerna.
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEMO-EUS2-SAP00-X00; cd $_
Skapa en annan parameterfil med namnet
backend
. Förresource_group_name
använder du namnet på resursgruppen där lagringskontot med dina Terraform-tillståndsfiler (.tfstate
) finns. Förstorage_account_name
ersätter du<tfstate_storage_account_name>
med namnet på lagringskontot från SAP-biblioteksdistributionen för.tfstate
filer. Förkey
kombinerar du distributionsverktygets resursgruppnamn med tillägget.terraform.tfstate
. Till 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
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
Initiera Terraform igen.
terraform init --backend-config backend \ ../../../sap-automation/deploy/terraform/run/sap_system/
Skapa en Terraform-körningsplan. Följ återigen standardkonventionerna för namngivning. Till exempel:
terraform plan \ --var-file=DEMO-EUS2-SAP00-X00.json \ ../../../sap-automation/deploy/terraform/run/sap_system/
Tillämpa Terraform-körningsplanen. Till 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 i automation Framework-lagringsplatsen 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 |
SAP Bill of Materials (BOM) bearbetning programvara nedladdning |
playbook_04a_sap_scs_install.yaml |
Installation av SAP Central Services (SCS) |
playbook_05a_hana_db_install.yaml |
Installation av SAP HANA-databas |
playbook_06a_sap_dbload.yaml |
Databasinläsare |
playbook_06b_sap_pas_install.yaml |
INSTALLATION av SAP-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 |
Konfiguration av pacemakerkluster |
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
enligt följande. Se till att ändra alla platshållarvärden till din egen information:
- Ändra
<your-sapbits-path>
till sökvägen till ditt lagringskontosapbits
för SAP-biblioteket. - Ändra
<azure-admin>
till ditt användarnamn 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