|
2 | 2 |
|
3 | 3 | 
|
4 | 4 |
|
5 |
| -This Ansible Collection executes various SAP Software installations and configuration tasks for running SAP software on Linux operating systems; with handlers for SAP HANA database lifecycle manager (HDBLCM) and SAP Software Provisioning Manager (SWPM) for programmatic deployment of any SAP solution scenario. |
| 5 | +This Ansible Collection executes various SAP Software installations and configuration tasks for running various SAP solutions and deployment scenarios on Linux operating systems (RHEL or SLES). |
6 | 6 |
|
7 |
| -This can be combined with other Ansible Collections to provide end-to-end automation, from download of SAP software installation media through to technical configuration and burstable SAP NetWeaver application servers (start/stop). |
| 7 | +This includes handlers for SAP HANA database lifecycle manager (HDBLCM) and SAP Software Provisioning Manager (SWPM), and can be combined with other Ansible Collections to provide end-to-end automation _(e.g. provision, download, install, operations)_. |
8 | 8 |
|
9 |
| -## Functionality |
10 | 9 |
|
11 |
| -This Ansible Collection executes various SAP Software installations for different SAP solution scenarios, including: |
| 10 | +**Examples of verified installations include:** |
12 | 11 |
|
13 |
| -- **SAP HANA installations via SAP HANA database lifecycle manager (HDBLCM)** |
| 12 | +- SAP S/4HANA AnyPremise (1809, 1909, 2020, 2021, 2022, 2023) with setup as Standard, Distributed, High Availability and optional Maintenance Planner or Restore System Copy |
| 13 | +- SAP Business Suite (ECC) on HANA and SAP Business Suite (ECC) with SAP AnyDB - SAP ASE, SAP MaxDB, IBM Db2, Oracle DB |
| 14 | +- SAP BW/4HANA (2021, 2023) with setup as Standard or Scale-Out |
| 15 | +- SAP HANA 2.0 (SPS04+) with setup as Scale-Up, Scale-Out, High Availability |
| 16 | +- Other SAP installation activities; such as System Rename, System Copy Export, SAP Solution Manager and SAP Web Dispatcher |
14 | 17 |
|
15 |
| - - Install SAP HANA database server, with any SAP HANA Component (e.g. Live Cache Apps, Application Function Library etc.) |
16 |
| - - Configure Firewall rules and Hosts file for SAP HANA database server instance/s |
17 |
| - - Apply license to SAP HANA |
18 |
| - - Configure storage layout for SAP HANA mount points (i.e. /hana/data, /hana/log, /hana/shared) |
19 |
| - - Install SAP Host Agent |
20 |
| - - Install Linux Pacemaker, configure Pacemaker Fencing Agents and Pacemaker Resource Agents |
21 |
| - - Install SAP HANA System Replication |
22 |
| - - Set HA/DR for SAP HANA System Replication |
23 | 18 |
|
24 |
| -- **Every SAP Software installation via SAP Software Provisioning Manager (SWPM)** |
25 |
| - - Run software install tasks using easy Ansible Variable to generate SWPM Unattended installations _(sap_swpm Ansible Role default mode)_. |
26 |
| - - Optional use of templating definitions for repeated installations _(sap_swpm Ansible Role default templates mode)_. |
27 |
| - - Run software install tasks with Ansible Variables one-to-one matched to SWPM Unattended Inifile parameters to generate bespoke SWPM Unattended installations _(sap_swpm Ansible Role advanced mode)_. |
28 |
| - - Optional use of templating definitions for repeated installations _(sap_swpm Ansible Role advanced templates mode)_. |
29 |
| - - Run previously-defined installations with an existing SWPM Unattended inifile.params _(sap_swpm Ansible Role inifile_reuse mode)_ |
30 |
| - - Install Linux Pacemaker, configure Pacemaker Fencing Agents and Pacemaker Resource Agents |
31 |
| - - Set HA/DR with distributed SAP System installations (i.e. ERS) |
| 19 | +**Please read the [full documentation](/docs#readme) for how-to guidance, requirements, and all other details. Summary documentation is below:** |
32 | 20 |
|
33 |
| -### Note |
34 |
| - |
35 |
| -Starting with `ansible-core` versions 2.16.1, 2.15.8, and 2.14.12, templating operations inside the `that` statement of `assert` tasks |
36 |
| -are no longer allowed. |
37 |
| - |
38 |
| -A typical error message is: |
39 |
| -``` |
40 |
| -fatal: [host01]: FAILED! => |
41 |
| - msg: 'The conditional check ''13 <= 128'' failed. The error was: Conditional is marked as unsafe, and cannot be evaluated.' |
42 |
| -``` |
43 |
| - |
44 |
| -This version of the collection ensures the compatibility with the above mentioned versions of `ansible-core` for the following roles: |
45 |
| -- sap_general_preconfigure |
46 |
| -- sap_netweaver_preconfigure |
47 |
| -- sap_hana_preconfigure |
48 |
| -- sap_hana_install |
49 |
| - |
50 |
| -When running the preconfigure roles with the above mentioned versions of `ansible-core` and with the parameters |
51 |
| -`sap_general_preconfigure_assert`, `sap_netweaver_preconfigure_assert`, or `sap_hana_preconfigure_assert`, the roles will abort |
52 |
| -in the first `assert` task which contains a templating operation. |
53 | 21 |
|
54 | 22 | ## Contents
|
55 | 23 |
|
56 |
| -An Ansible Playbook can call either an Ansible Role, or the individual Ansible Modules: |
57 |
| - |
58 |
| -- **Ansible Roles** (runs multiple Ansible Modules) |
59 |
| -- **Ansible Modules** (and adjoining Python/Bash Functions) |
60 |
| - |
61 |
| -For further information regarding the development, code structure and execution workflow please read the [Development documentation](./docs/DEVELOPMENT.md). |
62 |
| - |
63 | 24 | Within this Ansible Collection, there are various Ansible Roles and no custom Ansible Modules.
|
64 | 25 |
|
65 | 26 | ### Ansible Roles
|
66 | 27 |
|
67 |
| -| Name | Summary | |
| 28 | +| Name | Summary | |
68 | 29 | | :--- | :--- |
|
69 |
| -| [sap_anydb_install_oracle](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_anydb_install_oracle) | install Oracle DB 19.x for SAP | |
70 |
| -| [sap_general_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_general_preconfigure) | configure general OS settings for SAP software | |
71 |
| -| [sap_ha_install_hana_hsr](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_ha_install_hana_hsr) | install SAP HANA System Replication | |
72 |
| -| [sap_ha_pacemaker_cluster](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_ha_pacemaker_cluster) | install and configure pacemaker and SAP resources | |
73 |
| -| [sap_hana_install](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hana_install) | install SAP HANA via HDBLCM | |
74 |
| -| [sap_hana_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hana_preconfigure) | configure settings for SAP HANA database server | |
75 |
| -| [sap_hostagent](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hostagent) | install SAP Host Agent | |
76 |
| -| [sap_hypervisor_node_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hypervisor_node_preconfigure) | configure a hypervisor running VMs for SAP HANA | |
77 |
| -| [sap_install_media_detect](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_install_media_detect) | detect and extract SAP Software installation media | |
78 |
| -| [sap_netweaver_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_netweaver_preconfigure) | configure settings for SAP NetWeaver application server | |
79 |
| -| [sap_storage_setup](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_storage_setup) | configure storage for SAP HANA, with LVM partitions and XFS filesystem | |
80 |
| -| [sap_swpm](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_swpm) | install SAP Software via SWPM | |
81 |
| -| [sap_vm_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_vm_preconfigure) | configure settings for a guest (VM) running on RHV/KVM for SAP HANA | |
82 |
| - |
83 |
| -**_Notes_**: |
84 |
| - |
85 |
| -In general the "preconfigure" and "prepare" roles are prerequisites for the corresponding installation roles. |
86 |
| -The logic has been separated to support a flexible execution of the different steps. |
87 |
| - |
88 |
| -### Ansible Roles Lint Status |
89 |
| - |
90 |
| -| Role Name | Ansible Lint Status | |
91 |
| -| :--- | :--- | |
92 |
| -| [sap_anydb_install_oracle](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_anydb_install_oracle) | N/A | |
93 |
| -| [sap_general_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_general_preconfigure) | [](https://github.com/sap-linuxlab/community.sap_install/actions/workflows/ansible-lint-sap_general_preconfigure.yml) | |
94 |
| -| [sap_ha_install_hana_hsr](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_ha_install_hana_hsr) | [](https://github.com/sap-linuxlab/community.sap_install/actions/workflows/ansible-lint-sap_ha_install_hana_hsr.yml) | |
95 |
| -| [sap_ha_pacemaker_cluster](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_ha_pacemaker_cluster) | [](https://github.com/sap-linuxlab/community.sap_install/actions/workflows/ansible-lint-sap_ha_pacemaker_cluster.yml) | |
96 |
| -| [sap_hana_install](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hana_install) | [](https://github.com/sap-linuxlab/community.sap_install/actions/workflows/ansible-lint-sap_hana_install.yml) | |
97 |
| -| [sap_hana_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hana_preconfigure) | [](https://github.com/sap-linuxlab/community.sap_install/actions/workflows/ansible-lint-sap_hana_preconfigure.yml) | |
98 |
| -| [sap_hostagent](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hostagent) | N/A | |
99 |
| -| [sap_hypervisor_node_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hypervisor_node_preconfigure) | [](https://github.com/sap-linuxlab/community.sap_install/actions/workflows/ansible-lint-sap_hypervisor_node_preconfigure.yml) | |
100 |
| -| [sap_install_media_detect](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_install_media_detect) | N/A | |
101 |
| -| [sap_netweaver_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_netweaver_preconfigure) | [](https://github.com/sap-linuxlab/community.sap_install/actions/workflows/ansible-lint-sap_netweaver_preconfigure.yml) | |
102 |
| -| [sap_storage_setup](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_storage_setup) | N/A | |
103 |
| -| [sap_swpm](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_swpm) | [](https://github.com/sap-linuxlab/community.sap_install/actions/workflows/ansible-lint-sap_swpm.yml) | |
104 |
| -| [sap_vm_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_vm_preconfigure) | N/A | |
105 |
| - |
106 |
| -**_Notes:_** |
107 |
| - |
108 |
| -- Ansible Playbook localhost executions may have limitations on SAP Software installations |
109 |
| -- Ansible Roles for HA/DR are all designed for execution with Terraform |
110 |
| - |
111 |
| -## Execution examples |
112 |
| - |
113 |
| -There are various methods to execute the Ansible Collection, dependent on the use case. For more information, see [Execution examples with code samples](./docs/getting_started) and the summary below: |
114 |
| - |
115 |
| -| Execution Scenario | Use Case | Target | |
116 |
| -| ---- | ---- | ---- | |
117 |
| -| Ansible Playbook <br/>-> source Ansible Collection <br/>-> execute Ansible Task <br/>--> run Ansible Role <br/>---> run Ansible Module for Shell (built-in)<br/>---> ... | Complex executions with various interlinked activities;<br/> run in parallel or sequentially | Localhost or Remote | |
118 |
| - |
119 |
| -## Testing, Requirements and Dependencies |
120 |
| - |
121 |
| -### Testing |
122 |
| - |
123 |
| -Various SAP Software solutions have been extensively tested: |
124 |
| - |
125 |
| -- SAP HANA |
126 |
| - - Scale-Up |
127 |
| - - Scale-Out |
128 |
| - - High Availability |
129 |
| -- SAP NetWeaver AS (ABAP or JAVA) and additional addons (e.g. GRC, ADS) |
130 |
| -- SAP S/4HANA AnyPremise (1809, 1909, 2020, 2021, 2022) |
131 |
| - - Sandbox (One Host) installation |
132 |
| - - Standard (Dual Host) installation |
133 |
| - - Distributed installation |
134 |
| - - High Availability installation |
135 |
| - - System Copy (Homogeneous with SAP HANA Backup / Recovery) installation |
136 |
| - - Maintenance Planner installation |
137 |
| - - System Rename |
138 |
| -- SAP BW/4HANA |
139 |
| -- SAP Business Suite on HANA (SoH, i.e. SAP ECC on HANA) |
140 |
| -- SAP Business Suite (i.e. SAP ECC with SAP AnyDB - SAP ASE, SAP MaxDB, IBM Db2, Oracle DB) |
141 |
| -- SAP Solution Manager 7.2 |
142 |
| -- SAP Web Dispatcher |
143 |
| - |
144 |
| -### Target host - Operating System requirements |
145 |
| - |
146 |
| -Designed for Linux operating systems, e.g. RHEL (7.x and 8.x) and SLES (15.x). |
147 |
| - |
148 |
| -This Ansible Collection has not been tested and amended for SAP NetWeaver Application Server instantiations on IBM AIX or Windows Server. |
149 |
| - |
150 |
| -Assumptions for executing the Ansible Roles from this Ansible Collection include: |
151 |
| - |
152 |
| -- Registered OS |
153 |
| -- OS Package repositories are available (from the relevant content delivery network of the OS vendor) |
154 |
| - |
155 |
| -N.B. The Ansible Collection works with SLES from version 15 SP3 and upwards, for the following reasons: |
156 |
| - |
157 |
| -- firewalld is used within the Ansible Collection. In SLES 15 SP3, firewalld became the replacement for nftables. See changelog [SLE-16300](https://www.suse.com/releasenotes/x86_64/SUSE-SLES/15-SP3/index.html#jsc-SLE-16300) |
158 |
| -- SELinux is used within the Ansible Collection. While introduced earlier with community support, full support for SELinux was provided as of SLES 15 SP3. See changelog [SLE-17307](https://www.suse.com/releasenotes/x86_64/SUSE-SLES/15-SP3/index.html#jsc-SLE-17307) |
159 |
| - |
160 |
| -### Execution/Controller host - Operating System requirements |
161 |
| - |
162 |
| -Execution of Ansible Playbooks using this Ansible Collection have been tested with: |
163 |
| -- Python 3.9.7 and above (i.e. CPython distribution) |
164 |
| -- Ansible Core 2.11.5 and above _(included with optional installation of Ansible Community Edition 4.0 and above)_ |
165 |
| -- OS: macOS with Homebrew, RHEL, SLES, and containers in Task Runners (e.g. Azure DevOps) |
| 30 | +| [sap_anydb_install_oracle](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_anydb_install_oracle) | install Oracle DB 19.x for SAP | |
| 31 | +| [sap_general_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_general_preconfigure) | configure general OS settings for SAP software | |
| 32 | +| [sap_ha_install_hana_hsr](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_ha_install_hana_hsr) | install SAP HANA System Replication | |
| 33 | +| [sap_ha_pacemaker_cluster](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_ha_pacemaker_cluster) | install and configure pacemaker and SAP resources | |
| 34 | +| [sap_hana_install](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hana_install) | install SAP HANA via HDBLCM | |
| 35 | +| [sap_hana_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hana_preconfigure) | configure settings for SAP HANA database server | |
| 36 | +| [sap_hostagent](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hostagent) | install SAP Host Agent | |
| 37 | +| [sap_hypervisor_node_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hypervisor_node_preconfigure) | configure a hypervisor running VMs for SAP HANA | |
| 38 | +| [sap_install_media_detect](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_install_media_detect) | detect and extract SAP Software installation media | |
| 39 | +| [sap_maintain_etc_hosts](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_maintain_etc_hosts) | maintain the /etc/hosts file of an SAP software host | |
| 40 | +| [sap_netweaver_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_netweaver_preconfigure) | configure settings for SAP NetWeaver application server | |
| 41 | +| [sap_storage_setup](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_storage_setup) | configure storage for SAP HANA, with LVM partitions and XFS filesystem | |
| 42 | +| [sap_swpm](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_swpm) | install SAP Software via SWPM | |
| 43 | +| [sap_vm_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_vm_preconfigure) | configure settings for a guest (VM) running on RHV/KVM for SAP HANA | |
166 | 44 |
|
167 | 45 | ## License
|
168 | 46 |
|
|
0 commit comments