├── .ansible-lint
├── .gitattributes
├── .github
└── workflows
│ ├── ansible-lint.yml
│ ├── codespell.yml
│ └── publish-stage-to-main.yml
├── .gitignore
├── LICENSE
├── README.md
├── deploy_scenarios
├── sap_bw4hana_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_bw4hana_standard_scaleout
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ecc_hana_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ecc_ibmdb2_distributed
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ecc_ibmdb2_distributed_ha
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ecc_ibmdb2_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ecc_oracledb_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ecc_sapase_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ecc_sapmaxdb_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_hana
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_kubevirt_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_hana_ha
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_hana_scaleout
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ides_ecc_hana_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_ides_ecc_ibmdb2_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_landscape_s4hana_standard
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ └── ansible_inventory_noninteractive.yml
├── sap_landscape_s4hana_standard_maintplan
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ └── ansible_inventory_noninteractive.yml
├── sap_nwas_abap_hana_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_nwas_abap_ibmdb2_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_nwas_abap_oracledb_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_nwas_abap_sapase_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_nwas_abap_sapmaxdb_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_nwas_java_ibmdb2_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_nwas_java_sapase_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_distributed
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_distributed_ha
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_distributed_ha_maintplan
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_distributed_maintplan
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_foundation_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_foundation_standard
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_kubevirt_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_sandbox_maintplan
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_standard
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_kubevirt_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_s4hana_standard_maintplan
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_powervs.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_ibmpowervm_vm.yml
│ ├── ansible_extravars_kubevirt_vm.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ ├── ansible_extravars_interactive.yml
│ │ ├── ansible_inventory_noninteractive.yml
│ │ └── interactive
│ │ ├── README.md
│ │ ├── databases
│ │ ├── anydb.yml
│ │ ├── anydb_ha.yml
│ │ ├── hana.yml
│ │ └── hana_ha.yml
│ │ ├── main.yml
│ │ ├── mandatory_vars.yml
│ │ ├── platforms
│ │ ├── aws_ec2_vs.yml
│ │ ├── bastion.yml
│ │ ├── gcp_ce_vm.yml
│ │ ├── ibmcloud_powervs.yml
│ │ ├── ibmcloud_vs.yml
│ │ ├── ibmpowervm_vm.yml
│ │ └── msazure_vm.yml
│ │ ├── process_host_spec_dictionary.yml
│ │ ├── swpm.yml
│ │ └── swpm_ha.yml
├── sap_solman_sapase_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ │ ├── ansible_extravars_existing_hosts.yml
│ │ └── ansible_inventory_noninteractive.yml
└── sap_solman_saphana_sandbox
│ ├── README.md
│ ├── ansible_extravars.yml
│ ├── ansible_extravars_aws_ec2_vs.yml
│ ├── ansible_extravars_gcp_ce_vm.yml
│ ├── ansible_extravars_ibmcloud_vs.yml
│ ├── ansible_extravars_msazure_vm.yml
│ ├── ansible_extravars_ovirt_vm.yml
│ ├── ansible_extravars_vmware_vm.yml
│ ├── ansible_playbook.yml
│ ├── ansible_requirements.yml
│ └── optional
│ ├── ansible_extravars_existing_hosts.yml
│ └── ansible_inventory_noninteractive.yml
├── docs
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── DEV_EXECUTION_FLOW.md
├── FAQ.md
├── GET_STARTED_AZURE_DEVOPS.md
├── GET_STARTED_MACOS.md
├── GET_STARTED_WINDOWS.md
├── README.md
├── images
│ └── ansible_playbooks_sap_summary.svg
└── sample
│ └── azure_devops_pipeline_ansible.yml
└── special_actions
├── sap_download_install_media
├── README.md
├── ansible_extravars.yml
├── ansible_playbook.yml
├── ansible_requirements.yml
└── optional
│ └── ansible_inventory_noninteractive.yml
├── sap_sda
├── README.md
├── ansible_extravars.yml
├── ansible_playbook.yml
├── ansible_requirements.yml
└── optional
│ └── ansible_inventory_noninteractive.yml
├── sap_system_copy_export
├── README.md
├── ansible_extravars.yml
├── ansible_playbook.yml
├── ansible_requirements.yml
└── optional
│ └── ansible_inventory_noninteractive.yml
├── sap_system_copy_restore_hana_sandbox
├── README.md
├── ansible_extravars.yml
├── ansible_playbook.yml
├── ansible_requirements.yml
└── optional
│ └── ansible_inventory_noninteractive.yml
└── sap_webdispatcher_standalone
├── README.md
├── ansible_extravars.yml
├── ansible_extravars_aws_ec2_vs.yml
├── ansible_extravars_gcp_ce_vm.yml
├── ansible_extravars_ibmcloud_powervs.yml
├── ansible_extravars_ibmcloud_vs.yml
├── ansible_extravars_ibmpowervm_vm.yml
├── ansible_extravars_msazure_vm.yml
├── ansible_extravars_ovirt_vm.yml
├── ansible_extravars_vmware_vm.yml
├── ansible_playbook.yml
├── ansible_requirements.yml
└── optional
├── ansible_extravars_existing_hosts.yml
└── ansible_inventory_noninteractive.yml
/.ansible-lint:
--------------------------------------------------------------------------------
1 | ---
2 | # Collection wide lint-file
3 | # DO NOT CHANGE
4 | exclude_paths:
5 | - .cache/
6 | - .github/
7 | #- docs/
8 | # Ansible requirements are not recognized as valid yaml file
9 | - deploy_scenarios/.*/ansible_requirements\.yml$
10 | - common_fragments/vars/ansible_requirements.yml
11 |
12 | enable_list:
13 | - yaml
14 |
15 | skip_list:
16 | # We don't want to enforce new Ansible versions for Galaxy:
17 | - meta-runtime[unsupported-version]
18 |
19 | # We do not want to use checks which are marked as experimental:
20 | - experimental
21 |
22 | # # We use ignore_errors for all the assert tasks, which should be acceptable:
23 | # - ignore-errors
24 |
25 | # # We want to allow single digit version numbers in a role's meta/main.yml file:
26 | # - schema
27 |
28 | # Allow templating inside name because it creates more detailed output:
29 | - name[template]
30 |
31 | # Duplicates correct in editable file /optional/ansible_extravars_noninteractive.yml
32 | - yaml[key-duplicates]
33 |
34 | # Used for /etc/hosts edits
35 | - no-tabs
36 |
37 | # Incorrectly shows error for nested {%- endfor -%} already correct indent
38 | - jinja[spacing]
39 |
40 | # Shell commands are required
41 | - no-changed-when
42 | - command-instead-of-shell
43 |
44 | # Prettify problems
45 | - yaml[comments]
46 | - yaml[line-length]
47 | - yaml[empty-lines]
48 |
49 | # Ignore ha_cluster vars used within sap_ha_pacemaker_cluster
50 | # - var-naming[no-role-prefix]
51 |
52 | # Ignore dynamic variable population for Scale-Out
53 | - var-naming[no-jinja]
54 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.yml linguist-detectable
--------------------------------------------------------------------------------
/.github/workflows/ansible-lint.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | name: ansible-lint of the ansible playbooks for sap
4 |
5 | on:
6 | # Runs at 10:10 on every Monday
7 | schedule:
8 | - cron: '10 10 * * 1'
9 |
10 | # Runs on push to dev and main branches
11 | push:
12 | branches:
13 | - dev
14 | - main
15 |
16 | # Enable manual start button
17 | workflow_dispatch:
18 |
19 | jobs:
20 | ansible-lint:
21 | runs-on: ubuntu-latest
22 |
23 | steps:
24 | - name: Check out the code
25 | uses: actions/checkout@v4
26 | with:
27 | path: repo_playbooks
28 |
29 | - name: Set up Python 3
30 | uses: actions/setup-python@v5
31 | with:
32 | python-version: '3.12'
33 |
34 | - name: Install dependencies for Python
35 | run: |
36 | pip3 install --upgrade pip
37 | pip3 install ansible==11.4.0
38 | pip3 install ansible-compat==4.1.11
39 | pip3 install ansible-core==2.18.4
40 | pip3 install ansible-lint==25.2.1
41 |
42 | # dev branch is using shared fragments
43 | - name: Install dependencies for Ansible (dev)
44 | working-directory: repo_playbooks
45 | if: github.ref == 'refs/heads/dev'
46 | run: |
47 | ansible-galaxy collection install -r ./common_fragments/ansible_requirements.yml
48 |
49 | # main branch is using:
50 | # - deploy_scenarios/sap_hana if file exists
51 | # - else first scenario with ansible_requirements.yml
52 | - name: Install dependencies for Ansible (main)
53 | working-directory: repo_playbooks
54 | if: github.ref == 'refs/heads/main'
55 | run: |
56 | if [ -f ./deploy_scenarios/sap_hana/ansible_requirements.yml ]; then
57 | ansible-galaxy collection install -r ./deploy_scenarios/sap_hana/ansible_requirements.yml
58 | else
59 | first_file=$(find ./deploy_scenarios/ -name ansible_requirements.yml -print -quit)
60 | if [ -n "$first_file" ]; then
61 | echo "Using $first_file"
62 | ansible-galaxy collection install -r "$first_file"
63 | else
64 | echo "No ansible_requirements.yml found in deploy_scenarios"
65 | exit 1
66 | fi
67 | fi
68 |
69 | - name: Run ansible-lint
70 | working-directory: repo_playbooks
71 | run: ansible-lint
72 |
--------------------------------------------------------------------------------
/.github/workflows/codespell.yml:
--------------------------------------------------------------------------------
1 | ---
2 | name: CodeSpell
3 |
4 | on:
5 | # Runs on push and pull request to dev
6 | push:
7 | branches:
8 | - dev
9 | pull_request:
10 | branches:
11 | - dev
12 |
13 | # Enable manual start button
14 | workflow_dispatch:
15 |
16 | jobs:
17 | codespell:
18 | name: Check for spelling errors
19 | runs-on: ubuntu-latest
20 |
21 | steps:
22 | - name: Check out the code
23 | uses: actions/checkout@v4
24 | with:
25 | path: repo_playbooks
26 |
27 | - uses: codespell-project/actions-codespell@v2
28 | with:
29 | path: repo_playbooks
30 | # lowercase only
31 | ignore_words_list: aas,iterm,daa
32 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # .gitignore defines files to ignore and remain untracked in Git
2 | # Each line in a gitignore file specifies a pattern, eg. directory or file extension
3 |
4 | # Git should not track binary artifacts such as images, libraries, executables, archive files etc.
5 | # Until the team has mature processes, a Binary Artifacts Repository Manager is not in use.
6 |
7 | # Therefore some binary artifacts are tracked in this Git repository
8 |
9 |
10 | # Further .gitignore templates available at:
11 | # https://github.com/github/gitignore
12 |
13 |
14 | # Ignore keys
15 | *_rsa
16 |
17 | # Ignore embedded tmp dirs
18 | **/ssh
19 | **/tmp
20 | **/tmp_collections
21 |
22 | # Ignore override files as they are usually used to override resources locally and so
23 | # are not checked in
24 | *_override.yml
25 |
26 |
27 | # Crash log files
28 | crash.log
29 |
30 | # macOS OS generated files
31 | .DS_Store
32 | ._*
33 | .Spotlight-V100
34 | .Trashes
35 |
36 | # Windows OS generated files #
37 | ehthumbs.db
38 | Thumbs.db
39 |
40 | # Compressed Archives
41 | # git has built-in compression
42 | # *.7z
43 | # *.dmg
44 | # *.gz
45 | # *.iso
46 | # *.jar
47 | # *.rar
48 | # *.tar
49 | # *.zip
50 |
51 | # Binaries / Compiled source
52 | # *.com
53 | # *.class
54 | # *.dll
55 | # *.exe
56 | # *.o
57 | # *.so
58 |
59 | # Logs and databases
60 | # *.log
61 | # *.sqlite
62 |
63 | # Byte-compiled / optimized / DLL files
64 | __pycache__/
65 | *.py[cod]
66 | *$py.class
67 |
68 | # VSCode
69 | .vscode
70 |
71 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_bw4hana_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_bw4hana_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-s4hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_bw4hana_sandbox/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_bw4hana_standard_scaleout/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_bw4hana_standard_scaleout/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-s4hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_hana_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_hana_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-s4hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_hana_sandbox/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_ibmdb2_distributed/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_ibmdb2_distributed/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | anydb_primary:
6 | hosts:
7 | sap-anydb-p:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | nwas_ascs:
15 | hosts:
16 | sap-nw-ascs:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
23 | nwas_pas:
24 | hosts:
25 | sap-nw-pas:
26 | ansible_host: IP_GOES_HERE
27 | ansible_port: 22
28 | ansible_user: root
29 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
30 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
31 |
32 | nwas_aas:
33 | hosts:
34 | sap-nw-aas:
35 | ansible_host: IP_GOES_HERE
36 | ansible_port: 22
37 | ansible_user: root
38 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
39 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
40 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_ibmdb2_distributed/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_ibmdb2_distributed_ha/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_ibmdb2_distributed_ha/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | anydb_primary:
6 | hosts:
7 | sap-anydb-p:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | anydb_secondary:
15 | hosts:
16 | sap-anydb-s:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
23 | nwas_ascs:
24 | hosts:
25 | sap-nw-ascs:
26 | ansible_host: IP_GOES_HERE
27 | ansible_port: 22
28 | ansible_user: root
29 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
30 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
31 |
32 | nwas_ers:
33 | hosts:
34 | sap-nw-ers:
35 | ansible_host: IP_GOES_HERE
36 | ansible_port: 22
37 | ansible_user: root
38 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
39 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
40 |
41 | nwas_pas:
42 | hosts:
43 | sap-nw-pas:
44 | ansible_host: IP_GOES_HERE
45 | ansible_port: 22
46 | ansible_user: root
47 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
48 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
49 |
50 | nwas_aas:
51 | hosts:
52 | sap-nw-aas:
53 | ansible_host: IP_GOES_HERE
54 | ansible_port: 22
55 | ansible_user: root
56 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
57 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
58 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_ibmdb2_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_ibmdb2_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_ibmdb2_sandbox/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_oracledb_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_oracledb_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_oracledb_sandbox/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_sapase_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_sapase_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_sapase_sandbox/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_sapmaxdb_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_sapmaxdb_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ecc_sapmaxdb_sandbox/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana_ha/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana_ha/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana-p:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | hana_secondary:
15 | hosts:
16 | sap-hana-s:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana_ha/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana_scaleout/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana_scaleout/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | hdb-scaleout0:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 | hdb-scaleout1:
14 | ansible_host: IP_GOES_HERE
15 | ansible_port: 22
16 | ansible_user: root
17 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
18 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
19 | hdb-scaleout2:
20 | ansible_host: IP_GOES_HERE
21 | ansible_port: 22
22 | ansible_user: root
23 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
24 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
25 | hdb-scaleout3:
26 | ansible_host: IP_GOES_HERE
27 | ansible_port: 22
28 | ansible_user: root
29 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
30 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
31 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_hana_scaleout/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ides_ecc_hana_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ides_ecc_hana_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-s4hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ides_ecc_ibmdb2_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_ides_ecc_ibmdb2_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_landscape_s4hana_standard/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_landscape_s4hana_standard/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | nwas_ascs:
15 | hosts:
16 | sap-nw-ascs-pas:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_landscape_s4hana_standard_maintplan/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_landscape_s4hana_standard_maintplan/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | nwas_ascs:
15 | hosts:
16 | sap-nw-ascs-pas:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_hana_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_hana_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-nwas-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_ibmdb2_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_ibmdb2_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_oracledb_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_oracledb_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_sapase_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_sapase_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_sapmaxdb_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_abap_sapmaxdb_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_java_ibmdb2_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_java_ibmdb2_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_java_sapase_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_nwas_java_sapase_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | nwas_ascs:
15 | hosts:
16 | sap-nw-ascs:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
23 | nwas_pas:
24 | hosts:
25 | sap-nw-pas:
26 | ansible_host: IP_GOES_HERE
27 | ansible_port: 22
28 | ansible_user: root
29 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
30 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
31 |
32 | nwas_aas:
33 | hosts:
34 | sap-nw-aas:
35 | ansible_host: IP_GOES_HERE
36 | ansible_port: 22
37 | ansible_user: root
38 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
39 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
40 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed_ha/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed_ha/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana-p:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | hana_secondary:
15 | hosts:
16 | sap-hana-s:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
23 | nwas_ascs:
24 | hosts:
25 | sap-nw-ascs:
26 | ansible_host: IP_GOES_HERE
27 | ansible_port: 22
28 | ansible_user: root
29 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
30 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
31 |
32 | nwas_ers:
33 | hosts:
34 | sap-nw-ers:
35 | ansible_host: IP_GOES_HERE
36 | ansible_port: 22
37 | ansible_user: root
38 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
39 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
40 |
41 | nwas_pas:
42 | hosts:
43 | sap-nw-pas:
44 | ansible_host: IP_GOES_HERE
45 | ansible_port: 22
46 | ansible_user: root
47 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
48 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
49 |
50 | nwas_aas:
51 | hosts:
52 | sap-nw-aas:
53 | ansible_host: IP_GOES_HERE
54 | ansible_port: 22
55 | ansible_user: root
56 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
57 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
58 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed_ha_maintplan/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed_ha_maintplan/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana-p:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | hana_secondary:
15 | hosts:
16 | sap-hana-s:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
23 | nwas_ascs:
24 | hosts:
25 | sap-nw-ascs:
26 | ansible_host: IP_GOES_HERE
27 | ansible_port: 22
28 | ansible_user: root
29 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
30 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
31 |
32 | nwas_ers:
33 | hosts:
34 | sap-nw-ers:
35 | ansible_host: IP_GOES_HERE
36 | ansible_port: 22
37 | ansible_user: root
38 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
39 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
40 |
41 | nwas_pas:
42 | hosts:
43 | sap-nw-pas:
44 | ansible_host: IP_GOES_HERE
45 | ansible_port: 22
46 | ansible_user: root
47 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
48 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
49 |
50 | nwas_aas:
51 | hosts:
52 | sap-nw-aas:
53 | ansible_host: IP_GOES_HERE
54 | ansible_port: 22
55 | ansible_user: root
56 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
57 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
58 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed_maintplan/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_distributed_maintplan/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | nwas_ascs:
15 | hosts:
16 | sap-nw-ascs:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
23 | nwas_pas:
24 | hosts:
25 | sap-nw-pas:
26 | ansible_host: IP_GOES_HERE
27 | ansible_port: 22
28 | ansible_user: root
29 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
30 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
31 |
32 | nwas_aas:
33 | hosts:
34 | sap-nw-aas:
35 | ansible_host: IP_GOES_HERE
36 | ansible_port: 22
37 | ansible_user: root
38 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
39 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
40 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_foundation_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_foundation_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-s4hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_foundation_standard/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_foundation_standard/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | nwas_ascs:
15 | hosts:
16 | sap-nw-ascs-pas:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-s4hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_sandbox/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_sandbox_maintplan/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_sandbox_maintplan/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-s4hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_standard/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_standard/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | nwas_ascs:
15 | hosts:
16 | sap-nw-ascs-pas:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_standard/optional/interactive/databases/anydb_ha.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # Interactive prompts - Scenario - AnyDB HA - sapase, sapmaxdb, ibmdb2, oracledb
3 |
4 | # Following variables are defined and validated:
5 | # - sap_swpm_db_host
6 | # - sap_vm_provision_ha_vip_anydb_primary
7 |
8 |
9 | # sap_vm_provision variables
10 | # sap_swpm_db_host is used by sap_vm_provision role for AnyDB HA
11 | - name: Block for sap_swpm_db_host
12 | block:
13 | - name: Prompt for Virtual AnyDB hostname
14 | ansible.builtin.pause:
15 | prompt: |
16 | Enter the virtual hostname for the SAP AnyDB database.
17 | See following SAP Notes for more information: 2279110 and 962955.
18 | Ensure that this does not contain the local hostname.
19 | {% if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 -%}
20 | Press enter to skip and use the default value ('{{ sap_playbook_host_anydb_primary_hostname }}-ha').
21 | {% endif %}
22 | register: sap_swpm_db_host_register
23 | when: sap_swpm_db_host is not defined
24 |
25 | - name: Set fact for sap_swpm_db_host
26 | ansible.builtin.set_fact:
27 | sap_swpm_db_host: "{{ sap_swpm_db_host_register.user_input
28 | if sap_swpm_db_host_register.user_input | length > 0
29 | else (sap_playbook_host_anydb_primary_hostname ~ '-ha'
30 | if sap_playbook_host_anydb_primary_hostname | d('') | length > 0 else '') }}"
31 | when: sap_swpm_db_host is not defined
32 |
33 | - name: Fail if sap_swpm_db_host is invalid
34 | ansible.builtin.fail:
35 | msg: |
36 | Invalid value for variable 'sap_swpm_db_host': '{{ sap_swpm_db_host }}'
37 | {% if sap_swpm_db_host_register.user_input is not defined -%}
38 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
39 | {% else -%}
40 | Re-run the playbook and provide a valid input.
41 | {% endif %}
42 | when: sap_swpm_db_host | length == 0
43 |
44 |
45 | - name: Block for sap_vm_provision_ha_vip_anydb_primary
46 | block:
47 | - name: Prompt for Virtual IP of AnyDB
48 | ansible.builtin.pause:
49 | prompt: |
50 | Enter the Virtual IP (VIP) for AnyDB Primary server.
51 | Platform specific recommendations:
52 | AWS: the VIP must be **outside** of any VPC Subnet ranges (e.g. 192.168.100.102/32)
53 | GCP: the VIP must be within the VPC Subnetwork range attached to GCP Backend Service for the Internal passthrough Network Load Balancer (e.g. 10.10.10.10/32)
54 | IBM Cloud: the VIP is within the VPC Subnet range and is statically defined by the IBM Cloud Load Balancer [NLB L4 or ALB L7], variable should be commented out
55 | IBM Cloud, Power VS: the VIP must be within the IBM Power Infrastructure VLAN Subnet range (e.g. 192.168.4.4/26)
56 | MS Azure: the VIP must be within the VNet Subnet range attached to the Azure Load Balancer [NLB L4] (e.g. 10.10.10.10/22)
57 | IBM PowerVM: the VIP must be within the VLAN Subnet range
58 | OVirt KVM: the VIP must be within the VLAN Subnet range
59 | KubeVirt: the VIP must be within the VLAN Subnet range
60 | register: sap_vm_provision_ha_vip_anydb_primary_register
61 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
62 |
63 | - name: Set fact for sap_vm_provision_ha_vip_anydb_primary
64 | ansible.builtin.set_fact:
65 | sap_vm_provision_ha_vip_anydb_primary: "{{ sap_vm_provision_ha_vip_anydb_primary_register.user_input }}"
66 | when: sap_vm_provision_ha_vip_anydb_primary is not defined
67 |
68 | - name: Fail if sap_vm_provision_ha_vip_anydb_primary is invalid
69 | ansible.builtin.fail:
70 | msg: |
71 | Invalid value for variable 'sap_vm_provision_ha_vip_anydb_primary': '{{ sap_vm_provision_ha_vip_anydb_primary }}'
72 | {% if sap_vm_provision_ha_vip_anydb_primary_register.user_input is not defined -%}
73 | Correct this variable in extra vars or remove it from extra vars to enable interactive prompt.
74 | {% else -%}
75 | Re-run the playbook and provide a valid input.
76 | {% endif %}
77 | when:
78 | - sap_vm_provision_ha_vip_anydb_primary | length == 0
79 | or sap_vm_provision_ha_vip_anydb_primary == 'ENTER_STRING_VALUE_HERE'
80 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_standard_maintplan/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_s4hana_standard_maintplan/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | hana_primary:
6 | hosts:
7 | sap-hana:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
14 | nwas_ascs:
15 | hosts:
16 | sap-nw-ascs-pas:
17 | ansible_host: IP_GOES_HERE
18 | ansible_port: 22
19 | ansible_user: root
20 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
21 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
22 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_solman_sapase_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_solman_sapase_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_solman_saphana_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/deploy_scenarios/sap_solman_saphana_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_pas:
6 | hosts:
7 | sap-nwas-anydb:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------
/docs/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing guidelines for Ansible Playbooks for SAP
2 |
3 | This document outlines the contribution guidelines for the Ansible Playbooks for SAP. Please read it carefully before submitting any changes.
4 |
5 | ## Guiding principle
6 | All scenarios in `main` branch are self-contained and they should work when copied outside of Ansible Playbooks for SAP.
7 | Example: The playbook `sap_hana_ha` should still work when `sap_hana_ha` folder is copied elsewhere.
8 |
9 | ## Terminology
10 | - **Scenario**, means the SAP Software Solution/Product which runs upon a target Infrastructure Platform using a Deployment Topology (inc. Installation Type).
11 | - **Deployment Topology**, means either a Sandbox, Standard, Distributed or High Availability SAP System design has been implemented using different installation types to one or more hosts.
12 | - **Installation Type**, means a different component of SAP Software has been installed by hdblcm or SAP SWPM with a specific runtime design and layout (e.g. SAP HANA Scale-Up using MDC and TDI-sized storage for OLTP workloads, with High Availability using SAP HANA System Replication in Asynchronous mode).
13 | - **Layout**, refers to the virtual/physical hardware components such as LVM Virtual Groups with striping/mirroring using Block Storage attached to Virtual Machine/s.
14 |
15 | ## Branch Protection
16 | The following branches are present in repository:
17 | - `dev` - Development branch, where we merge from forks. No direct commits, only pull requests from forks.
18 | - `stage` - Stable branch is used for releases that reflects `dev` branch. No direct commits, only pull requests from `dev`.
19 | - `main` - Main default branch, that is created by transformation of `stage` branch. No direct commits or pull requests.
20 |
21 | ## Main branch transformation process
22 | `dev > stage > main`
23 |
24 | 1. Changes are merged to `dev` branch from fork of `dev` using pull request.
25 | 2. Release process is triggered by pull request from `dev` to `stage`.
26 | 3. GitHub action `publish-stage-to-main.yml` will trigger on `stage` changes:
27 | 4. Clone `stage` branch to github action runner.
28 | 5. Copy `common_fragments/tasks` into all `deploy_scenarios` folders.
29 | 6. Combine extra vars fragments in following order (example for AWS):
30 | - `ansible_extravars_aws_ec2_vs_base.yml`
31 | - `common_fragments/vars/platform_vars_aws_ec2_vs.yml`
32 | - `ansible_extravars_aws_ec2_vs_spec.yml`
33 | - `common_fragments/vars/platform_images_aws_ec2_vs.yml`
34 | 7. Append all platform spec and image files to `optional/ansible_extravars_interactive.yml`.
35 | 8. Distribute `optional/ansible_requirements.yml` to all `deploy_scenarios`.
36 | 9. Remove `common_fragments` folder.
37 | 10. Compare current transformed state of `stage` branch against current `main` branch.
38 | 11. Create commit and push to `main` only if changes were detected.
39 |
40 | ### Benefits of the transformation process
41 | - All shared variables can be defined in `common_fragments`.
42 | - All shared tasks can be defined in `common_fragments`.
43 | - Promotes code reuse and reduces redundancy across different scenarios.
44 | - Simplifies maintenance by centralizing common configurations and tasks.
45 | - Ensures consistency in configurations and task execution across various scenarios.
46 |
47 | ## Testing
48 | Before submitting a pull request, please ensure that your changes have been thoroughly tested.
49 |
50 | Testing in `dev` branch requires including all relevant fragments.
51 |
52 | ### Example for scenario on AWS:
53 | ```bash
54 | ansible-playbook ansible_playbook.yml \
55 | --extra-vars "@./ansible_extravars.yml" \
56 | --extra-vars "@./ansible_extravars_aws_ec2_vs_base.yml" \
57 | --extra-vars "@./ansible_extravars_aws_ec2_vs_spec.yml" \
58 | --extra-vars "@../../common_fragments/vars/platform_vars_aws_ec2_vs.yml" \
59 | --extra-vars "@../../common_fragments/vars/platform_images_aws_ec2_vs.yml"
60 | ```
61 |
62 |
63 | ## Code Style and Documentation
64 | Please adhere to the following guidelines:
65 | - Follow Ansible best practices for writing playbooks, roles, and tasks.
66 | - Use clear and descriptive names for variables, tasks, and files.
67 | - Include comments to explain complex logic or non-obvious configurations.
68 | - Document roles, playbooks, and variables in their respective README files.
69 |
--------------------------------------------------------------------------------
/docs/CONTRIBUTORS.md:
--------------------------------------------------------------------------------
1 | # Development contributors
2 |
3 | - **IBM Lab for SAP Solutions**
4 | - IBM Cloud
5 | - **Sean Freeman** - Origin developer of Ansible Playbooks for SAP
6 | - **Red Hat**
7 | - Red Hat for SAP CoP
8 | - **Janine Fuchs** - Developer of iterative improvements from advanced scenarios (e.g. HA), project co-owner
9 | - **SUSE**
10 | - SUSE SAP Emerging Technology Solutions
11 | - **Marcel Mamula** - Developer of iterative improvements from advanced scenarios (e.g. HA), project co-owner
12 |
13 | # New contributors
14 |
15 | This project is consistently seeking new contributors for different SAP Solution Scenarios that are not covered.
16 |
--------------------------------------------------------------------------------
/docs/DEV_EXECUTION_FLOW.md:
--------------------------------------------------------------------------------
1 | # Execution workflow structure
2 |
3 | Each Ansible Playbook for SAP is for end-to-end deployment of an SAP Software solution scenario to an Infrastructure Platform.
4 |
5 | The Infrastructure-as-Code (IaC) provisioning activities, optionally can use Ansible or Terraform:
6 | - When provisioning hosts using Ansible, the infrastructure platform must already be setup.
7 | - When provisioning hosts using Ansible calling Terraform, a Minimal Landing Zone and the hosts will be provisioned.
8 | - Alternatively both can be skipped, and the Ansible Playbook use existing hosts.
9 |
10 | Segregation of definitions for the Infrastructure and SAP Software follows this delineation:
11 | - Ansible Dictionary to define the Host Specification templates (i.e. CPU, RAM, Storage etc). This is statically defined in the Ansible Extravars file, for example `sap_vm_provision_aws_ec2_vs_host_specifications_dictionary` and for Cloud Hyperscaler's also `sap_vm_provision_aws_ec2_vs_host_os_image_dictionary`. Default sizes for Extra Small SAP Systems are provided.
12 | - Ansible Dictionary to define the SAP Software installation / SAP System templates. This is statically defined in the Ansible Extravars file, for example `sap_swpm_templates_install_dictionary` and other `sap_`prefix Ansible Variables.
13 |
14 | Within each Ansible Playbook, there are various Ansible Tasks for handling the infrastructure/hosts. Afterwards, the referenced Ansible Collection Role/s for configuration of OS and installation of SAP software is identical for each Infrastructure Platform.
15 |
16 |
17 |
18 | **Execution of this modular and nested structure used in these end-to-end deployment Ansible Playbooks for SAP, is shown in the example below:**
19 |
20 | **Ansible Playbook for SAP solution scenario `ansible_playbook.yml`:**
21 | - Non-Interactive (Standard)
22 | - Include multiple Ansible Extravars file
23 | - OPTIONAL: Include Ansible Inventory, skip all provisioning and use existing hosts
24 | - Interactive
25 | - Prompt IAC Provisioning choice (Ansible, Ansible to Terraform, Existing Hosts)
26 | - Prompt Infrastructure Platform choice
27 | - Execute Ansible Role `sap_vm_provision` from the Ansible Collection `sap_infrastructure`
28 | - Execute Ansible Tasks for the chosen Infrastructure Platform; call Infrastructure Platform APIs
29 | - If Ansible, loop for VM and storage provisioning per definition in the `*_host_specifications_dictionary` for the chosen Infrastructure Platform and use existing network and bastion setup
30 | - If Ansible to Terraform, execute Terraform Modules for SAP to bootstrap minimal landing zone (e.g. Networking, DNS, SSH Key), then loop for VM and storage provisioning per definition in the `*_host_specifications_dictionary` for the chosen Infrastructure Platform
31 | - Critical OS tasks for VM, such as enable Root OS Login
32 | - Execute various Ansible Roles from the Ansible Collection `sap_install`
33 | - Within each Ansible Role, execute Ansible Tasks for RHEL/SLES OS pre-configuration for SAP, SAP HANA install, SAP SWPM installs etc.
34 | - Ansible Tasks using built-in Ansible Modules, e.g. built-in for POSIX Shell:
35 | - OS CLI/binaries
36 | - Vendor CLI/binaries (i.e. SAP Software CLI/binaries)
37 | - Ansible Tasks using customized Ansible Modules:
38 | - Shell scripts --> OS and Vendor CLI/binaries
39 | - Python scripts
40 |
--------------------------------------------------------------------------------
/docs/GET_STARTED_AZURE_DEVOPS.md:
--------------------------------------------------------------------------------
1 | # Getting Started - Azure DevOps Pipelines
2 |
3 | The following guidance describes how to execute an Ansible Playbook from Azure DevOps Service Pipelines:
4 |
5 | 1. Log in to Microsoft Azure
6 | 2. Open [Azure DevOps Services AEX Portal](https://aex.dev.azure.com). Create an Azure DevOps Organization (e.g. `dev.azure.com/username0111`) and select where the 'Projects' host location will be (e.g. `Europe`)
7 | 3. This will automatically open the Azure DevOps Organization URL (e.g. `https://dev.azure.com/username0111`)
8 | 4. Within the Azure DevOps Organization, create a new Project with a visibility 'Private' and provide a name (e.g. `project1`)
9 | 5. Unfortunately while "MS Hosted CI/CD" Free Tier provides 1800 minutes, the error `"No hosted parallelism has been purchased or granted"` will persistently be shown for all Pipeline Jobs (given every job is Queued in Parallel, even if only 1 job or all jobs are sequential). Open the 'Project Settings' at the bottom of the navigation menu, click 'Billing' (i.e. `https://dev.azure.com/username0111/project1/_settings/buildqueue`), then click 'Set up billing' to link the Azure DevOps Service to the Azure Subscription.
10 | 6. Once the link is completed, change the 'Paid parallel jobs' to `1`. This will remove the Free Tier minutes allowance but allow all Pipeline Jobs to function. Scroll down and click 'Save'. After this change, any Pipeline Job will now show "Agent: Hosted Agent" under "Pool: Azure Pipelines"
11 | 7. Open the 'Project Settings' again, under the Pipelines section click on 'Service connections'. From the list select 'Azure Resource Manager', then select 'Service Principal (automatic)' followed by scope level as 'Subscription' (optionally selecting a specific Resource Group intended for VM deployments) and enabling 'Grant access permission to all pipelines'. Then click 'Save'
12 | 8. Hover over 'Repos' in the navigation menu, then click 'Files'. Click 'Import a repository', use Clone URL `https://github.com/sap-linuxlab/ansible.playbooks_for_sap.git` and then 'Import'. This will clone the entire code repository and show the file structure and README (which may not be formatted correctly, as Azure DevOps Service does not use GFM Markdown). Any edits in this repository are private, and are not synchronised to the GitHub origin.
13 | - By default the name will be the same as the Project, to alter the Repo name then open the 'Project Settings' at the bottom of the navigation menu. Scroll down on the settings to Repositories (i.e. `https://dev.azure.com/username0111/project1/_settings/repositories`)
14 | 9. At the top of repository page, a downwards arrow will show the `main` branch as the 'Default branch' in Azure DevOps (which tracks the latest release version). Click this to choose 'Tags' to select a specific release version of the Ansible Playbooks for SAP. To change the default, use the 'Repos / Branches' page
15 | 10. Hover over 'Pipelines' in the navigation menu, then click 'Pipelines' followed by 'New pipeline'. Then select the 'Azure Repos Git' and choose the repository (e.g. `project1`) that was imported. The prompt 'Configure your pipeline' will appear, choose 'Existing Azure Pipelines YAML file' and use the Path drop-down menu to select the `/docs/sample/azure_devops_pipeline_ansible.yml`. Click Continue, then Save.
16 | 11. Once saved, click Pipelines and then 'Library', click 'Secure files' and then add the SSH Key files (Hosts Private/Public and Bastion Private).
17 | 12. After this, return to the Pipelines page and click Run, then enter the Parameters, and click Run again.
18 |
19 | _N.B. During download of installation media, the Ansible Task appears to hang but the files are being downloaded. Azure DevOps Pipelines do not output the status (e.g. loop item downloaded successfully) until the Ansible Task has fully completed, it is especially apparent during the download but the same applies to all Ansible Tasks during the Ansible Playbook execution_
20 |
21 | > Optional: In the top right corner, click the 'Marketplace' then use 'Browse marketplace' to install the Extension for Ansible by Microsoft (i.e. `https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.vss-services-ansible`) to the Azure DevOps Organization
22 |
--------------------------------------------------------------------------------
/special_actions/sap_download_install_media/README.md:
--------------------------------------------------------------------------------
1 | # Ansible Playbook - Download SAP Installation Media
2 |
3 | The structure of this Ansible Playbook differs from all `deploy_scenarios` in this repository:
4 | - Designed only for targeting existing hosts
5 |
6 | This Ansible Playbook can be executed with:
7 | - Existing hosts
8 |
9 | ---
10 |
11 | ## Execution of Ansible Playbook
12 |
13 | This Ansible Playbook can only be executed against existing hosts. Upon execution, Interactive Prompts will request for SAP User ID credentials and the user must select from a pre-defined options list of different SAP Software Installation Media.
14 |
15 | ```shell
16 | ansible-galaxy collection install --requirements-file ./ansible_requirements.yml
17 |
18 | TARGET_HOST_IP=""
19 | TARGET_HOSTS_SSH_KEY_FILE="/FULL/PATH/HERE/hosts_rsa"
20 |
21 | ansible-playbook ./ansible_playbook.yml \
22 | --inventory "$TARGET_HOST_IP," \
23 | --extra-vars "@ansible_extravars.yml" \
24 | --connection 'ssh' \
25 | --user root \
26 | --private-key "$TARGET_HOSTS_SSH_KEY_FILE" \
27 | --ssh-extra-args="-o ControlMaster=auto -o ControlPersist=1800s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no"
28 | ```
29 |
--------------------------------------------------------------------------------
/special_actions/sap_download_install_media/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | # - name: community.general
7 | - name: community.sap_launchpad
8 | type: galaxy
9 | version: 1.2.0
10 |
11 | # Collections from public repositories via HTTPS
12 | # - name: https://github.com/sap-linuxlab/community.sap_launchpad.git
13 | # type: git
14 | # version: main
15 |
16 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
17 | # Used for customised/forked Ansible Collections
18 | # - name: git@github.domain.com:gheorg/namespace.sap_launchpad.git
19 | # type: git
20 | # version: main
21 |
--------------------------------------------------------------------------------
/special_actions/sap_download_install_media/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | ungrouped:
4 | hosts:
5 | host1:
6 | ansible_host: IP_GOES_HERE
7 | ansible_port: 22
8 | ansible_user: root
9 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
10 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
11 |
--------------------------------------------------------------------------------
/special_actions/sap_sda/README.md:
--------------------------------------------------------------------------------
1 | # Ansible Playbook - SAP SolMan Diagnostics Agent (SDA) installation
2 |
3 | The structure of this Ansible Playbook differs from all `deploy_scenarios` in this repository:
4 | - Designed only for targeting existing hosts
5 | - Requires existing SAP System host details and credentials
6 |
7 | This Ansible Playbook can be executed with:
8 | - Existing hosts
9 |
10 | This Ansible Playbook is `EXPERIMENTAL`. This is designed to be executed to a single target host for a basic SDA installation, further testing (and a separate Ansible Playbook) would be required for SDA installation to many hosts.
11 |
12 | ---
13 |
14 | ## Execution of Ansible Playbook
15 |
16 | This Ansible Playbook can only be executed against existing hosts. Upon execution, Interactive Prompts will request additional details, the user must select from the pre-defined options in the prompt.
17 |
18 | ```shell
19 | ansible-galaxy collection install --requirements-file ./ansible_requirements.yml
20 |
21 | TARGET_HOST_IP=""
22 | TARGET_HOSTS_SSH_KEY_FILE="/FULL/PATH/HERE/hosts_rsa"
23 |
24 | ansible-playbook ./ansible_playbook.yml \
25 | --inventory "$TARGET_HOST_IP," \
26 | --extra-vars "@ansible_extravars.yml" \
27 | --connection 'ssh' \
28 | --user root \
29 | --private-key "$TARGET_HOSTS_SSH_KEY_FILE" \
30 | --ssh-extra-args="-o ControlMaster=auto -o ControlPersist=1800s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no"
31 | ```
32 |
--------------------------------------------------------------------------------
/special_actions/sap_sda/ansible_extravars.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # SAP Note 2253383 - Diagnostics Agent - SWPM Archive-Based Installation
3 | # SAP Note 1858920 - Diagnostics Agent installation with Software Provisioning Manager
4 |
5 | # SAP Diagnostics Agent 7.53, OS Independent (SUPPORT PACKAGES AND PATCHES)
6 | # https://me.sap.com/softwarecenter/template/products/EVENT=TREE&NE=NAVIGATE&ENR=AINS0120061532490001174401200615320900006067&V=MAINT&TA=ACTUAL
7 |
8 | # SAP JVM 8.1 (SUPPORT PACKAGES AND PATCHES)
9 | # https://me.sap.com/softwarecenter/template/products/EVENT=TREE&NE=NAVIGATE&ENR=73554900100200000247&V=MAINT
10 |
11 | # SAP JVM 6.1 (SUPPORT PACKAGES AND PATCHES)
12 | # https://me.sap.com/softwarecenter/template/products/EVENT=TREE&NE=NAVIGATE&ENR=01200615320200012982&V=MAINT
13 |
14 | # SAP Kernel 7.54 64-BIT, UNICODE, DATABASE INDEPENDENT (SUPPORT PACKAGES AND PATCHES)
15 | # https://me.sap.com/softwarecenter/template/products/EVENT=TREE&NE=NAVIGATE&ENR=73554900100200019168&V=MAINT
16 |
17 |
18 | # The following variables can be defined to skip prompts:
19 |
20 | # Enter SAP S-User ID (String).
21 | # sap_id_user:
22 |
23 | # Enter SAP S-User Password (String).
24 | # sap_id_user_password:
25 |
26 | # Enter key from sap_software_install_dictionary as String
27 | # sap_software_product: sap_diag_agent_753_for_solman72_sp12
28 |
29 | # Enter download directory path on target host (String).
30 | # sap_install_media_detect_source_directory: /software
31 |
32 | # Enter SAP SAP System ID (String).
33 | # sap_sda_system_id: DAA
34 |
35 | # Enter SAP SAP System Instance Number (String).
36 | # sap_sda_instance_nr: 98
37 |
38 | # Enter the password for the sidadm user (String).
39 | # sap_sda_adm_password: ''
40 |
41 | # Enter Virtual Host Name (short) of the target SAP System (String).
42 | # sap_sda_virtual_hostname: ''
43 |
44 |
45 | sap_software_install_dictionary:
46 |
47 | sap_diag_agent_753_for_solman72_sp12:
48 |
49 | softwarecenter_search_list_x86_64:
50 | - 'SAPCAR_1115-70006178.EXE'
51 | - 'SWPM10SP43_2-20009701.SAR'
52 | - 'SAPHOSTAGENT61_61-80004822.SAR' # SAP Host Agent 7.22 Linux x86_64
53 | - 'SMDA720_SP14_23-80003641.SAR' # SAP Diagnostics Agent 7.53, OS Independent, for SAP SolMan 7.2 SP12
54 | - 'SAPJVM8_96-80000202.SAR' # SAP JVM 8.1
55 | - 'SAPEXE_1100-80002573.SAR' # Kernel Part I (753)
56 | - 'SAPEXEDB_1100-80002572.SAR' # Kernel Part II (753), SAP HANA
57 |
58 | softwarecenter_search_list_ppc64le:
59 | - 'SAPCAR_1115-70006238.EXE'
60 | - 'SWPM10SP43_2-70002492.SAR'
61 | - 'SAPHOSTAGENT61_61-80004831.SAR' # SAP Host Agent 7.22 Linux x86_64
62 | - 'SMDA720_SP14_23-80003641.SAR' # SAP Diagnostics Agent 7.53, OS Independent, for SAP SolMan 7.2 SP12
63 | - 'SAPJVM8_96-70001621.SAR' # SAP JVM 8.1
64 | - 'SAPEXE_1100-80002630.SAR' # Kernel Part I (753)
65 | - 'SAPEXEDB_1100-80002629.SAR' # Kernel Part II (753), SAP HANA
66 |
67 |
68 | sap_diag_agent_753_for_solman72_sp0_sp11:
69 |
70 | softwarecenter_search_list_x86_64:
71 | - 'SAPCAR_1115-70006178.EXE'
72 | - 'SWPM10SP43_2-20009701.SAR'
73 | - 'SAPHOSTAGENT61_61-80004822.SAR' # SAP Host Agent 7.22 Linux x86_64
74 | - 'SMDA720_SP11_22-80003641.SAR' # SAP Diagnostics Agent 7.53, OS Independent, for SAP SolMan >= 7.2 SP0 and <= 7.2 SP11
75 | - 'SAPJVM8_96-80000202.SAR' # SAP JVM 8.1
76 | - 'SAPEXE_1100-80002573.SAR' # Kernel Part I (753)
77 | - 'SAPEXEDB_1100-80002572.SAR' # Kernel Part II (753), SAP HANA
78 |
79 | softwarecenter_search_list_ppc64le:
80 | - 'SAPCAR_1115-70006238.EXE'
81 | - 'SWPM10SP43_2-70002492.SAR'
82 | - 'SAPHOSTAGENT61_61-80004831.SAR' # SAP Host Agent 7.22 Linux x86_64
83 | - 'SMDA720_SP11_22-80003641.SAR' # SAP Diagnostics Agent 7.53, OS Independent, for SAP SolMan >= 7.2 SP0 and <= 7.2 SP11
84 | - 'SAPJVM8_96-70001621.SAR' # SAP JVM 8.1
85 | - 'SAPEXE_1100-80002630.SAR' # Kernel Part I (753)
86 | - 'SAPEXEDB_1100-80002629.SAR' # Kernel Part II (753), SAP HANA
87 |
--------------------------------------------------------------------------------
/special_actions/sap_sda/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | # - name: community.general
7 | - name: community.sap_install
8 | type: galaxy
9 | version: 1.5.3
10 | - name: community.sap_launchpad
11 | type: galaxy
12 | version: 1.2.0
13 |
14 | # Collections from public repositories via HTTPS
15 | # - name: https://github.com/sap-linuxlab/community.sap_launchpad.git
16 | # type: git
17 | # version: main
18 |
19 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
20 | # Used for customised/forked Ansible Collections
21 | # - name: git@github.domain.com:gheorg/namespace.sap_launchpad.git
22 | # type: git
23 | # version: main
24 |
--------------------------------------------------------------------------------
/special_actions/sap_sda/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | ungrouped:
4 | hosts:
5 | host1:
6 | ansible_host: IP_GOES_HERE
7 | ansible_port: 22
8 | ansible_user: root
9 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
10 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
11 |
--------------------------------------------------------------------------------
/special_actions/sap_system_copy_export/README.md:
--------------------------------------------------------------------------------
1 | # Ansible Playbook - SAP System Copy EXPORT
2 |
3 | The structure of this Ansible Playbook differs from all `deploy_scenarios` in this repository:
4 | - Designed only for targeting existing hosts
5 |
6 | This Ansible Playbook can be executed with:
7 | - Existing hosts
8 |
9 | This Ansible Playbook is `EXPERIMENTAL` and only includes code for source system SAP System Export of SAP ECC EhP8 using IBM Db2.
10 |
11 | ---
12 |
13 | ## Execution of Ansible Playbook
14 |
15 | This Ansible Playbook can only be executed against existing hosts. Upon execution, Interactive Prompts will request additional details, the user must select from the pre-defined options in the prompt.
16 |
17 | ```shell
18 | ansible-galaxy collection install --requirements-file ./ansible_requirements.yml
19 |
20 | TARGET_HOST_IP=""
21 | TARGET_HOSTS_SSH_KEY_FILE="/FULL/PATH/HERE/hosts_rsa"
22 |
23 | ansible-playbook ./ansible_playbook.yml \
24 | --inventory "$TARGET_HOST_IP," \
25 | --extra-vars "@ansible_extravars.yml" \
26 | --connection 'ssh' \
27 | --user root \
28 | --private-key "$TARGET_HOSTS_SSH_KEY_FILE" \
29 | --ssh-extra-args="-o ControlMaster=auto -o ControlPersist=1800s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no"
30 | ```
31 |
--------------------------------------------------------------------------------
/special_actions/sap_system_copy_export/ansible_extravars.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | ####
4 | # Mandatory parameters : Ansible Dictionary for lookup of pretty name to SAP SWPM database reference codes
5 | ####
6 |
7 | sap_db_ref_code_dictionary:
8 | saphana: HDB
9 | sapase: SYB
10 | sapmaxdb: ADA
11 | ibmdb2: DB6
12 | oracledb: ORA
13 |
14 |
15 | ####
16 | # Mandatory parameters : Ansible Dictionary for SAP SWPM installation using Default Templates mode of the Ansible Role
17 | ####
18 |
19 | sap_swpm_ansible_role_mode: advanced_templates
20 |
21 | # Templates and default values
22 | sap_swpm_templates_install_dictionary:
23 |
24 | # SAP Business Suite 7i 2016 > EHP8 for SAP ERP 6.0 ABAP > IBM Db2 for Linux, UNIX, and Windows > System Copy > Source System > Based on AS ABAP > Database Instance Export
25 | sap_ecc6_ehp8_anydb_ibmdb2_distributed_syscopy_export:
26 |
27 | sap_swpm_product_catalog_id: NW_Export:BS2016.ERP608.DB6.CP
28 |
29 | sap_swpm_inifile_custom_values_dictionary:
30 | NW_ABAP_Export_Dialog.migmonJobNum: 3
31 | NW_ABAP_Export_Dialog.migmonLoadArgs: -stop_on_error
32 | NW_ABAP_Export_Dialog.parallelR3szchkExecution: "true"
33 | NW_ABAP_Export_Dialog.r3szchkDetermineSizeValue: DB
34 | NW_ABAP_Export_Dialog.repeatExport: COMPLETE
35 | NW_ABAP_Export_Dialog.splitPackageLimitVal: 5000
36 | NW_ABAP_Export_Dialog.targetDbType: "{{ sap_db_ref_code_dictionary[sap_export_db_type_target] }}"
37 | NW_ABAP_Export_Dialog.targetHardwarePlatform: LITTLE_ENDIAN
38 | NW_ABAP_Export_Dialog.useSqlFiles: NOSQL
39 | NW_ABAP_Export_Dialog.useUnsortedUnload: "true"
40 | NW_Export.mainExportDir: "{{ sap_export_directory }}"
41 | NW_Export.stopRunningSystem: "false"
42 | NW_Export.accessLevel4ExportDir: DEFAULT
43 | NW_Export.choiceSepKernel: "false"
44 | NW_readProfileDir.profileDir: "{{ sap_export_profile_path }}"
45 | NW_getLoadType.importManuallyExecuted: false
46 | NW_getLoadType.loadType: STD
47 | NW_DB6_DB.db6.abap.connect.user: "{{ sap_export_db_connect_user }}"
48 | NW_DB6_DB.db6.abap.schema: "{{ sap_export_db_schema_abap }}"
49 |
--------------------------------------------------------------------------------
/special_actions/sap_system_copy_export/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | # - name: community.general
7 | - name: community.sap_install
8 | type: galaxy
9 | version: 1.5.3
10 |
11 | # Collections from public repositories via HTTPS
12 | # - name: https://github.com/sap-linuxlab/community.sap_launchpad.git
13 | # type: git
14 | # version: main
15 |
16 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
17 | # Used for customised/forked Ansible Collections
18 | # - name: git@github.domain.com:gheorg/namespace.sap_launchpad.git
19 | # type: git
20 | # version: main
21 |
--------------------------------------------------------------------------------
/special_actions/sap_system_copy_export/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | ungrouped:
4 | hosts:
5 | host1:
6 | ansible_host: IP_GOES_HERE
7 | ansible_port: 22
8 | ansible_user: root
9 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
10 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
11 |
--------------------------------------------------------------------------------
/special_actions/sap_system_copy_restore_hana_sandbox/README.md:
--------------------------------------------------------------------------------
1 | # Ansible Playbook - SAP System Copy Restore from SAP HANA Complete Data Backup
2 |
3 | The structure of this Ansible Playbook differs from all `deploy_scenarios` in this repository:
4 | - Designed only for targeting existing hosts
5 |
6 | This Ansible Playbook can be executed with:
7 | - Existing hosts
8 |
9 | This Ansible Playbook is `EXPERIMENTAL` and is exclusively for performing a System Copy Restore as a Sandbox SAP System Sandbox (i.e. all SAP HANA and SAP NetWeaver instances run on a single host), using an SAP HANA Complete Data Backup file which contains the SAP ECC on HANA or SAP S/4HANA System.
10 |
11 | ---
12 |
13 | ## Execution of Ansible Playbook
14 |
15 | This Ansible Playbook can only be executed against existing hosts. Upon execution, Interactive Prompts will request additional details, the user must select from the pre-defined options in the prompt.
16 |
17 | ```shell
18 | ansible-galaxy collection install --requirements-file ./ansible_requirements.yml
19 |
20 | TARGET_HOST_IP=""
21 | TARGET_HOSTS_SSH_KEY_FILE="/FULL/PATH/HERE/hosts_rsa"
22 |
23 | ansible-playbook ./ansible_playbook.yml \
24 | --inventory "$TARGET_HOST_IP," \
25 | --extra-vars "@ansible_extravars.yml" \
26 | --connection 'ssh' \
27 | --user root \
28 | --private-key "$TARGET_HOSTS_SSH_KEY_FILE" \
29 | --ssh-extra-args="-o ControlMaster=auto -o ControlPersist=1800s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no"
30 | ```
31 |
--------------------------------------------------------------------------------
/special_actions/sap_system_copy_restore_hana_sandbox/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | # - name: community.general
7 | - name: community.sap_install
8 | type: galaxy
9 | version: 1.5.3
10 |
11 | # Collections from public repositories via HTTPS
12 | # - name: https://github.com/sap-linuxlab/community.sap_launchpad.git
13 | # type: git
14 | # version: main
15 |
16 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
17 | # Used for customised/forked Ansible Collections
18 | # - name: git@github.domain.com:gheorg/namespace.sap_launchpad.git
19 | # type: git
20 | # version: main
21 |
--------------------------------------------------------------------------------
/special_actions/sap_system_copy_restore_hana_sandbox/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | ungrouped:
4 | hosts:
5 | host1:
6 | ansible_host: IP_GOES_HERE
7 | ansible_port: 22
8 | ansible_user: root
9 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
10 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
11 |
--------------------------------------------------------------------------------
/special_actions/sap_webdispatcher_standalone/ansible_extravars_vmware_vm.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # EXPERIMENTAL
3 |
4 | #### Scenario specific infrastructure platform variables ####
5 |
6 |
7 | #### Bastion server details ####
8 | # Bastion variables are used when sap_vm_provision_bastion_execution is set to `true`
9 | sap_vm_provision_bastion_user: "ENTER_STRING_VALUE_HERE" # Bastion user name (String).
10 | sap_vm_provision_bastion_ssh_port: "ENTER_STRING_VALUE_HERE" # Bastion user password (String).
11 |
12 | # Variables required for sap_vm_provision_iac_type=ansible
13 | sap_vm_provision_bastion_public_ip: "ENTER_STRING_VALUE_HERE" # Public IP of the bastion server (String).
14 | sap_vm_provision_ssh_bastion_private_key_file_path: "ENTER_STRING_VALUE_HERE" # Path to bastion server's SSH private key on the execution node (String).
15 | sap_vm_provision_ssh_host_private_key_file_path: "ENTER_STRING_VALUE_HERE" # Path to target host's SSH private key on the execution node (String).
16 | sap_vm_provision_ssh_host_public_key_file_path: "ENTER_STRING_VALUE_HERE" # Path to bastion public host key on execution node (String).
17 |
18 | #### Infrastructure platform variables ####
19 | sap_vm_provision_iac_platform: "vmware_vm" # Name of the provisioning platform (String).
20 | sap_vm_provision_vmware_vcenter_hostname: "" # VCenter hostname (String).
21 | sap_vm_provision_vmware_vcenter_validate_certs_bool: false # Validate certificates (Boolean).
22 | sap_vm_provision_vmware_vcenter_user: "" # VCenter user name (String).
23 | sap_vm_provision_vmware_vcenter_password: "" # VCenter user password (String).
24 |
25 | sap_vm_provision_vmware_vm_folder_name: "" # VM Folder name (String).
26 | sap_vm_provision_vmware_vm_cluster_name: "" # VM Cluster name (String).
27 | sap_vm_provision_vmware_vm_cluster_host_name: "" # VM Cluster host name (String).
28 | sap_vm_provision_vmware_vm_cluster_datastore_name: "" # VM Cluster datastore name (String).
29 |
30 | sap_vm_provision_vmware_vm_content_library_name: "" # VM Content library name (String).
31 | sap_vm_provision_vmware_vm_template_name: "" # VM template name (String).
32 |
33 | # Variables required for sap_vm_provision_iac_type=ansible_to_terraform
34 | # sap_vm_provision_terraform_state: "ENTER_STRING_VALUE_HERE" # present, absent
35 | # sap_vm_provision_resource_prefix: "ENTER_STRING_VALUE_HERE"
36 | # sap_vm_provision_bastion_os_image: "ENTER_STRING_VALUE_HERE"
37 | # sap_vm_provision_terraform_work_dir_path: "/tmp/tf1"
38 |
39 |
40 | #### Mandatory parameters : Ansible Dictionary for host specifications ####
41 | sap_vm_provision_vmware_vm_host_specifications_dictionary:
42 |
43 | xsmall_256gb:
44 |
45 | webdisp01: # Hostname, must be 13 characters or less
46 |
47 | sap_host_type: nwas_aas # hana_primary, hana_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
48 |
49 | # SMT-2 (i.e. 2 CPU Threads per CPU Core) is default for Intel CPU Hyper-Threading, optionally can be altered to SMT-1
50 | vmware_vm_cpu_smt: 2
51 | vmware_vm_cpu_threads: 8
52 | vmware_vm_memory_gib: 64
53 |
54 | sap_storage_setup_sid: "W{{ sap_system_wd_instance_nr }}" # SID created automatically as W
55 |
56 | # hana_primary, hana_secondary, nwas_abap_ascs, nwas_abap_ers, nwas_abap_pas, nwas_abap_aas, nwas_java_scs, nwas_java_ers
57 | sap_storage_setup_host_type:
58 | - all # workaround for generic NWAS instance setup via SAP SWPM
59 |
60 | storage_definition:
61 |
62 | - name: usr_sap
63 | mountpoint: /usr/sap
64 | disk_size: 128 # size in GB, integer
65 | disk_type: scsi # VMware Virtual Disk Node (scsi, ide, sata)
66 | filesystem_type: xfs # default: xfs
67 |
68 | - name: sapmnt
69 | mountpoint: /sapmnt
70 | disk_size: 80 # size in GB, integer
71 | disk_type: scsi # VMware Virtual Disk Node (scsi, ide, sata)
72 | filesystem_type: xfs # default: xfs
73 |
74 | - name: software
75 | mountpoint: /software
76 | disk_size: 128 # size in GB, integer
77 | disk_type: scsi # VMware Virtual Disk Node (scsi, ide, sata)
78 | filesystem_type: xfs # default: xfs
79 |
--------------------------------------------------------------------------------
/special_actions/sap_webdispatcher_standalone/ansible_requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | collections:
4 |
5 | # Collections from Ansible Galaxy
6 | - name: community.general
7 | type: galaxy
8 | version: 10.1.0
9 | - name: fedora.linux_system_roles
10 | type: galaxy
11 | version: 1.100.0
12 | - name: community.sap_install
13 | type: galaxy
14 | version: 1.5.3
15 | - name: community.sap_launchpad
16 | type: galaxy
17 | version: 1.2.0
18 | - name: community.sap_infrastructure
19 | type: galaxy
20 | version: 1.1.2
21 | # - name: community.sap_operations
22 | # type: galaxy
23 | # version: 0.9.1
24 |
25 | # Collections for Infrastructure from Ansible Galaxy
26 | - name: cloud.terraform
27 | type: galaxy
28 | version: 3.0.0
29 | - name: amazon.aws
30 | type: galaxy
31 | version: 9.0.0
32 | - name: community.aws
33 | type: galaxy
34 | version: 9.0.0
35 | - name: azure.azcollection
36 | type: galaxy
37 | version: 3.2.0
38 | - name: google.cloud
39 | type: galaxy
40 | version: 1.5.0
41 | # Replace with ibm.cloud in future, legacy Ansible Collection uses hidden on-the-fly Terraform files in /var/tmp/ansible/ibmcloud)
42 | - name: ibm.cloudcollection
43 | type: galaxy
44 | version: 1.71.2
45 | - name: ovirt.ovirt
46 | type: galaxy
47 | version: 3.2.0
48 | - name: openstack.cloud
49 | type: galaxy
50 | version: 2.4.0
51 | - name: vmware.vmware_rest
52 | type: galaxy
53 | version: 4.5.0
54 | - name: cloud.common
55 | type: galaxy
56 | version: 4.0.0
57 |
58 | # Collections from public repositories via HTTPS
59 | # - name: https://github.com/sap-linuxlab/community.sap_install.git
60 | # type: git
61 | # version: dev
62 |
63 | # Collections from private repositories via use SSH (embedded GitHub PAT does not work)
64 | # Used for customised/forked Ansible Collections
65 | # - name: git@github.domain.com:gheorg/namespace.sap_install.git
66 | # type: git
67 | # version: main
68 |
--------------------------------------------------------------------------------
/special_actions/sap_webdispatcher_standalone/optional/ansible_extravars_existing_hosts.yml:
--------------------------------------------------------------------------------
1 | ---
2 | #### Instructions for using existing_hosts ####
3 | # When existing_hosts are used, execution of provisioning role sap_vm_provision will be skipped.
4 | # This results in the need to define additional variables below, e.g. sap_general_preconfigure_domain.
5 | # Role sap_storage_setup will be searching for block devices based on their definition in storage_definition
6 | # under sap_vm_provision_existing_hosts_host_specifications_dictionary. These devices must not be partitioned!
7 |
8 |
9 | # Infrastructure provisioning definitions
10 | sap_vm_provision_iac_type: "existing_hosts"
11 | sap_vm_provision_iac_platform: "existing_hosts"
12 |
13 | sap_general_preconfigure_modify_etc_hosts: true
14 | sap_general_preconfigure_domain: "{{ ansible_domain }}"
15 |
16 |
17 | # sap_storage role variable assignment per host
18 | sap_storage_setup_definition:
19 | "{{ sap_vm_provision_existing_hosts_host_specifications_dictionary[sap_vm_provision_host_specification_plan]
20 | [inventory_hostname_short].storage_definition }}"
21 |
22 |
23 | #### Ansible Dictionary for host specifications ####
24 | sap_vm_provision_existing_hosts_host_specifications_dictionary:
25 |
26 | xsmall_256gb:
27 |
28 | webdisp01: # Hostname, must be 13 characters or less
29 | sap_host_type: nwas_aas # hana_primary, hana_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
30 |
31 | sap_storage_setup_sid: "W{{ sap_system_wd_instance_nr }}" # SID created automatically as W
32 |
33 | # hana_primary, hana_secondary, nwas_abap_ascs, nwas_abap_ers, nwas_abap_pas, nwas_abap_aas, nwas_java_scs, nwas_java_ers
34 | sap_storage_setup_host_type:
35 | - all # workaround for generic NWAS instance setup via SAP SWPM
36 |
37 | storage_definition:
38 |
39 | - name: usr_sap
40 | mountpoint: /usr/sap
41 | disk_size: 256 # size in GB, integer
42 | filesystem_type: xfs # default: xfs
43 |
44 | - name: sapmnt
45 | mountpoint: /sapmnt
46 | disk_size: 80 # size in GB, integer
47 | filesystem_type: xfs # default: xfs
48 |
49 | - name: software
50 | mountpoint: /software
51 | disk_size: 100 # size in GB, integer
52 | filesystem_type: xfs # default: xfs
53 |
--------------------------------------------------------------------------------
/special_actions/sap_webdispatcher_standalone/optional/ansible_inventory_noninteractive.yml:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | # Ansible Inventory Group names must match sap_host_type variable - hana_primary, hana_secondary, anydb_primary, anydb_secondary, nwas_ascs, nwas_ers, nwas_pas, nwas_aas
4 |
5 | nwas_aas:
6 | hosts:
7 | sap-webdisp:
8 | ansible_host: IP_GOES_HERE
9 | ansible_port: 22
10 | ansible_user: root
11 | ansible_ssh_private_key_file: "{{ playbook_dir }}/ssh/hosts_rsa"
12 | ansible_ssh_common_args: -o ConnectTimeout=180 -o ControlMaster=auto -o ControlPersist=3600s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ForwardX11=no -o ProxyCommand='ssh -W %h:%p bastionuser@IP_GOES_HERE -p 50222 -i {{ playbook_dir }}/ssh/bastion_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
13 |
--------------------------------------------------------------------------------