Giter Club home page Giter Club logo

ansible.playbooks_for_sap's Introduction

Ansible Playbooks for SAP

Use Ansible to deploy various SAP Software solution scenarios onto different Hyperscaler Cloud Service Providers and Hypervisors platforms.

These Ansible Playbooks for SAP are designed to be:

  • simple to understand,
  • highly reconfigurable and extendable,
  • self-enclosed for a specific scenario,
  • result in an equal installation performed to any Infrastructure Platform (Hyperscaler Cloud Service Providers and Hypervisor platforms),
  • use either Ansible or Terraform to provision Infrastructure,
  • use Ansible for configuration of OS and installation of SAP Software,
  • and licensed for corporate usage by SAP Customers, SAP Service Partners and SAP Technology Partners

Note: Ansible Playbooks for SAP optionally use Ansible > Terraform. To instead use Terraform > Ansible, see Terraform Templates for SAP

Please read the full documentation for how-to guidance, requirements, and all other details. Summary documentation is below:


Ansible Playbooks for SAP - execution workflow summary diagram

Ansible Playbooks for SAP execution flow


Ansible Playbooks for SAP - available scenarios summary

Ansible Playbooks are available for Operating Systems:

  • SUSE Linux Enterprise Server for SAP (SLES4SAP)
  • Red Hat Enterprise Linux for SAP (RHEL4SAP)

Ansible Playbooks are available for Infrastructure Platforms:

  • AWS EC2 Virtual Server instances
  • Google Cloud Compute Engine Virtual Machines
  • IBM Cloud, Intel Virtual Servers
  • IBM Cloud, Power Virtual Servers
  • Microsoft Azure Virtual Machines
  • IBM PowerVM Virtual Machines (LPARs)
  • OVirt (e.g. Red Hat Enterprise Linux KVM)
  • KubeVirt (e.g. Red Hat OpenShift Virtualization, SUSE Rancher with Harvester HCI) [Experimental]
  • VMware vSphere Virtual Machines [Beta]

Ansible Playbooks are available for SAP Software Solution Scenarios:

  • SAP HANA (2.0 SPSx)
    • Standard (Scale-Up)
    • High Availability (performance optimized)
    • Scale-Out
  • SAP S/4HANA (2023, 2022, 2021, 2020, 1909)
    • Sandbox
    • Sandbox via Maintenance Planner
    • Standard
    • Standard via Maintenance Planner
    • Distributed
    • Distributed via Maintenance Planner
    • Distributed High Availability
    • Distributed High Availability via Maintenance Planner
  • SAP Landscape for SAP S/4HANA (2023, 2022, 2021, 2020, 1909)
    • 3-System Standard
    • 3-System Standard via Maintenance Planner
  • SAP S/4HANA Foundation (2023, 2022, 2021), for SAP HANA-only Add-Ons and Custom Apps
    • Sandbox
    • Standard
  • SAP ECC on HANA (EhP8, EhP7)
    • Sandbox
  • SAP ECC (EhP8)
    • with IBM Db2, Sandbox
    • with IBM Db2, Distributed
    • with Oracle DB, Sandbox
    • with SAP ASE, Sandbox
    • with SAP MaxDB, Sandbox
  • SAP BW/4HANA (2023, 2021)
    • Sandbox
    • Standard (Scale-Out)
  • SAP IDES for ECC on HANA (EhP8)
    • Sandbox
  • SAP IDES for ECC (EhP8, EhP7)
    • with IBM Db2, Sandbox
  • SAP NetWeaver (ABAP)
    • with SAP HANA, Sandbox
    • with IBM Db2, Sandbox
    • with Oracle DB, Sandbox
    • with SAP ASE, Sandbox
    • with SAP MaxDB, Sandbox
  • SAP NetWeaver (JAVA)
    • with IBM Db2, Sandbox
    • with SAP ASE, Sandbox
  • SAP SolMan (ABAP/JAVA)
    • with SAP HANA, Sandbox
    • with SAP ASE, Sandbox

Ansible Playbooks available with Special Actions for SAP Software:

  • SAP Web Dispatcher, Standalone (with SAP Kernel Part II for SAP HANA)
  • SAP SolMan Diagnostics Agent (SDA) [Experimental]
  • Download SAP Software installation media
  • System Copy Export, IBM Db2 [Experimental]
  • System Copy Restore (SAP ECC on HANA or SAP S/4HANA), Sandbox [Experimental]

Ansible Playbooks for SAP - deployments choice summary

Get Started: See full documentation section Example execution of Ansible Playbooks for SAP

Below is a summary of the execution method and deployment options:

Execution Method Ansible with existing host/s Ansible provisions host/s Ansible uses Terraform to provision minimal landing zone and host/s
[Beta]
Interactive variable prompts
[Coming Soon]
Not Available Enter ansible
when prompted to
Please choose Infrastructure-as-Code automation from list
Enter ansible_to_terraform
when prompted to
Please choose Infrastructure-as-Code automation from list
Standard (non-interactive) In Extra Vars file, set
sap_vm_provision_iac_type: existing_hosts
In Extra Vars file, set
sap_vm_provision_iac_type: ansible
In Extra Vars file, set
sap_vm_provision_iac_type: ansible_to_terraform
Summary:
SAP installation ✅
Provisions hosts ❌
Infrastructure setup ❌
Summary:
SAP installation ✅
Provisions hosts ✅
Infrastructure setup ❌
Summary:
SAP installation ✅
Provisions hosts ✅
Infrastructure setup ✅
Intended usage:
SAP installation to existing host/s, using an existing setup on an Infrastructure Platform.

Target hosts are defined using an Ansible Inventory file.


Intended usage:
SAP installation to host/s provisioned by Ansible, using an existing setup on an Infrastructure Platform.

Target hosts are defined using a dynamically generated Ansible Inventory created during runtime (after hosts are provisioned).
Intended usage:
SAP installation to host/s provisioned by executing Terraform to create a minimal setup on an Infrastructure Platform.

Target hosts are defined using a dynamically generated Ansible Inventory created during runtime (after hosts are provisioned).

Disclaimer

These are common SAP Software Solution Scenarios which are codified using Ansible to provide for Infrastructure-as-Code (IaC) Automation for SAP and Configuration-as-Code (CaC) Automation for SAP. These can be extended as needed for bespoke requirements.

This does not intend (and can not) replicate every SAP software deployment scenario, and does not replace any existing SAP installation procedures detailed in the SAP Help Portal or SAP Notes on SAP ONE Support. However, with the Ansible Role for SAP SWPM it is possible to install any SAP Software which is supported by SAP Software Provisioning Manager (SWPM 1.0/2.0).

For move-fast activities, such as rapid provisioning and administration testing tasks (latest software releases and revision/patch levels, system copy restore to Cloud etc.), these Ansible Playbooks for SAP can be amended to suit these requirements.

For greater support in automating the lifecycle of SAP Systems themselves, it is recommended to consider SAP Landscape Management Enterprise Edition.

For greater demo and evaluation of SAP Software business functionality, it is recommended to consider SAP Cloud Appliance Library.


License

Contributors

Key contributors are shown within the contributors file.

ansible.playbooks_for_sap's People

Contributors

ja9fuchs avatar sean-freeman avatar wabri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ansible.playbooks_for_sap's Issues

sap*scaleout: fix incorrect regex for hostname handling

Fix hardcoded hostnames search to regex

  • Removed hardcoded reject for all hostnames containing '0'
  • Replaced with regex search checking for "ending with 0" instead.
# Before
reject('search', '0')

# After
reject('regex', '0$')

sap_storage_setup: Variable fix for Simple Mount

@sean-freeman ENSA2 ASCS ERS Simple Mount scenario requires both ASCS and ERS file shares to be mounted on both cluster nodes, because of SAPStartSrv resource agent.

ASCS ERS Plays needs to be adjusted to account for this:
Current:

         sap_storage_setup_nwas_abap_ascs_instance_nr: "{{ host_specifications_dictionary[sap_vm_provision_host_specification_plan]
          [inventory_hostname_short].sap_storage_setup_nwas_abap_ascs_instance_nr | default('') }}"
        sap_storage_setup_nwas_abap_ers_instance_nr: "{{ host_specifications_dictionary[sap_vm_provision_host_specification_plan]
          [inventory_hostname_short].sap_storage_setup_nwas_abap_ers_instance_nr | default('') }}"

Which results into issue, where cluster nodes are not aware of Instance number of other one, creating incorrect folder on NFS and mounting it incorrectly. Example for ASCS node, which does not have sap_storage_setup_nwas_abap_ers_instance_nr defined.

/usr/sap/AE1/ASCS00
/usr/sap/AE1/ERS

Required cross server variable, not inside of host_specifications_dictionary:

        sap_storage_setup_nwas_abap_ascs_instance_nr: "{{ sap_system_nwas_abap_ascs_instance_nr }}"
        sap_storage_setup_nwas_abap_ers_instance_nr: "{{ sap_system_nwas_abap_ers_instance_nr }}"

all: lint fix broke AWS

all: linting fix broke AWS

ansible-lint identified Ansible Role reference should be amazon.aws.iam_role. However this was only happened in last release 7.2.0 a few days before ansible-lint bug fixes began prior to public release, and all ansible_requirements.yml files were version locked to 5.4.0 of amazon.aws Ansible Collection during development.

AP4S 1.0.1 must update this requirement; from brief regression testing the newest amazon.aws Ansible Collection is backwards-compatible and does not cause any issues.

Low Priority: Documentation of Download & Uncompress

The section here: https://github.com/sap-linuxlab/ansible.playbooks_for_sap/blob/main/docs/GET_STARTED_WINDOWS.md#download
Has the following example:

mkdir -p run_playbooks && cd run_playbooks && curl -L https://github.com/sap-linuxlab/ansible.playbooks_for_sap/archive/refs/tags/1.0.0.zip | tar -xzv

But using 1.0.0.zip is not decompressed with tar.
Should be:

mkdir -p run_playbooks && cd run_playbooks && curl -L https://github.com/sap-linuxlab/ansible.playbooks_for_sap/archive/refs/tags/1.0.0.tar.gz | tar -xzv

Same for the MacOS section also.

all: add specific download check for ASE

ASE uses numeric filename without prefix or suffix, and therefore cannot be detected once the file is removed.

Suggest additional weekly GH Action:

  • Fuzzy search for SAP ASE 16 RDBMS Linux on x86_64 64bit
  • Sort Descending order, use first item (index [0])
  • Extract version substring (e.g. 16.0.04.06); parse to get SP 04 and Patch Level 06
  • Search for Client file as ASEBC16004P_6 ; if Patch Level 00, then search ASEBC16004_0
  • Identify replacement line using comment next to filename (e.g # SAP ASE 16.0.04.06 RDBMS Linux on x86_64 64bit)
  • Identify replacement line using filename prefix ASEBC160
  • Replace all occurances

Low priority.

private_endpoint_network_policies_enabled (Azure) deprecated

When using ansible-terraform the terraform command called by community.sap_infrastructure.sap_vm_provision reported this:

...
Warning: Argument is deprecated
  
      with module.run_account_init_module.azurerm_subnet.vnet_subnet,
      on .terraform/modules/run_account_init_module/msazure_vm/account_init/network_vnet_new.tf line 18, in resource "azurerm_subnet" "vnet_subnet":
      18:   private_endpoint_network_policies_enabled     = true
  
    `private_endpoint_network_policies_enabled` will be removed in favour of the
    property `private_endpoint_network_policies` in version 4.0 of the AzureRM
    Provider
...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.