Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 22 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
This Ansible Collection executes various SAP Software installations and configuration tasks for various SAP solutions and deployment scenarios on supported Linux operating systems.

Included roles cover range of tasks:

- Preparation of Operating system and SAP installation media before installation
- Installation of SAP Database, either SAP HANA or Oracle Database
- Installation of SAP Products, like SAP S4HANA, SAP BW4HANA, SAP Netweaver, SAP Solution Manager and others.
Expand All @@ -15,28 +16,20 @@ Included roles cover range of tasks:

## Requirements

### Control Nodes
Operating system:
- Any operating system with required Python and Ansible versions.

Python: 3.11 or higher

Ansible: 9.9.x

Ansible-core: 2.16.x

**NOTE: Ansible 10 and ansible-core 2.17.x are not supported, because of breaking changes requiring higher Python version on managed nodes.**

### Managed Nodes
Operating system:
- SUSE Linux Enterprise Server for SAP applications 15 SP5+ (SLE4SAP)
- Red Hat Enterprise Linux for SAP Solutions 8.x 9.x (RHEL4SAP)
| Component | Control Node | Managed Node |
| --- | --- | --- |
| Operating System | Any OS | Red Hat Enterprise Linux for SAP Solutions 8.x, 9.x and 10.x<br>SUSE Linux Enterprise Server for SAP applications 15 SP5, 15 SP6, 15 SP7 and 16.0 |
| Python | 3.11 or higher | 3.9 or higher |
| Ansible-Core | 2.18 or higher | N/A |
| Ansible | 12 or higher | N/A |

**NOTE: Operating system needs to have access to required package repositories either directly or via subscription registration.**
> **Managed Node Registration**<br>
> Operating system needs to have access to required package repositories either directly or via subscription registration.

**Additional notes:**

Python: 3.6 or higher

- **Version Compatibility:** For a detailed mapping of supported Python versions and Ansible-Core lifecycles, refer to the official [Ansible-Core Support Matrix](https://docs.ansible.com/projects/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix).
- **Control Node Permissions:** Ensure the user executing the playbooks has the necessary SSH keys and sudo privileges configured for the target environment.

## Installation Instructions

Expand Down Expand Up @@ -73,6 +66,7 @@ See [Installing collections](https://docs.ansible.com/ansible/latest/collections
## Use Cases

### Example Scenarios

- Preparation of Operating system for SAP installation
- Preparation of SAP installation media for SAP installation
- Installation of SAP HANA (including High Availability with replication) or Oracle Database
Expand All @@ -85,7 +79,7 @@ More deployment scenarios are available in [ansible.playbooks_for_sap](https://g
All included roles can be executed independently or as part of [ansible.playbooks_for_sap](https://github.com/sap-linuxlab/ansible.playbooks_for_sap) playbooks.

| Name | Summary |
| :--- | :--- |
| --- | --- |
| [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 |
| [sap_general_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_general_preconfigure) | Configure general OS settings for SAP software |
| [sap_ha_install_hana_hsr](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_ha_install_hana_hsr) | Configure and enable SAP HANA System Replication |
Expand All @@ -104,20 +98,25 @@ All included roles can be executed independently or as part of [ansible.playbook
This Ansible Collection was tested across different Operating Systems, SAP products and scenarios. You can find examples of some of them below.

Operating systems:
- SUSE Linux Enterprise Server for SAP applications 15 SP5+ (SLE4SAP)
- Red Hat Enterprise Linux for SAP Solutions 8.x 9.x (RHEL4SAP)

- Red Hat Enterprise Linux for SAP Solutions 8.x, 9.x and 10.x
- SUSE Linux Enterprise Server for SAP applications 15 SP5, 15 SP6, 15 SP7 and 16.0

Deployment scenarios:

- All scenarios included in [ansible.playbooks_for_sap](https://github.com/sap-linuxlab/ansible.playbooks_for_sap) repository

SAP Products:

- 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
- SAP Business Suite (ECC) on HANA and SAP Business Suite (ECC) with SAP AnyDB - SAP ASE, SAP MaxDB, IBM Db2, Oracle DB
- SAP BW/4HANA (2021, 2023) with setup as Standard or Scale-Out
- SAP HANA 2.0 (SPS04+) with setup as Scale-Up, Scale-Out, High Availability
- Other SAP installation activities; such as System Rename, System Copy Export, SAP Solution Manager and SAP Web Dispatcher

**NOTE: It is not possible to test every Operating System and SAP Product combination with every release. Testing is regularly done for common scenarios: SAP HANA, SAP HANA HA, SAP S4HANA Distributed HA**
> **Testing Disclaimer**<br>
> It is not possible to test every Operating System and SAP Product combination with every release.<br>
> Testing is regularly done for common scenarios: SAP HANA, SAP HANA HA, SAP S4HANA Distributed HA**


## Contributing
Expand Down
10 changes: 5 additions & 5 deletions docs/getting_started/secure-your-passwords.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Use ansible-vault to encrypt the string, which it reads from the file. Adding th
ansible-vault encrypt_string $(cat passfile) -n my_secret_var
```

Ansible-vault will ask to enter a vault password, which is required to decrypt the value during ansible runtime afterwards.
Ansible-vault will ask to enter a vault password, which is required to decrypt the value during ansible runtime afterwards.<br>
Consider this the "master key" for your vault-encrypted credentials.

```text
Expand All @@ -45,7 +45,7 @@ my_secret_var: !vault |
Encryption successful
```

Save the `my_secret_var` and encrypted multi-line value in your variable definitions and include the definition file as usual.
Save the `my_secret_var` and encrypted multi-line value in your variable definitions and include the definition file as usual.<br>
The variable can as well be referenced and used by other variables for more flexibility.

```yaml
Expand All @@ -62,7 +62,7 @@ rm passfile

## Run playbook which uses vault-encrypted content

As soon as a vault-encrypted value is present in your playbook, ansible will require the vault password to be entered for playbook execution.
As soon as a vault-encrypted value is present in your playbook, ansible will require the vault password to be entered for playbook execution.<br>
Add `--ask-vault` to your `ansible-playbook` command to prompt for this "master key" password and allow secure decryption.

```bash
Expand All @@ -75,7 +75,7 @@ _When encrypting multiple values that will be used together, you have to make su

You can also encrypt an entire file, e.g. containing multiple secrets.

However, if variables are defined in the file it will encrypt the variable names as well and makes it harder to identify the source definition of a referenced variable.
However, if variables are defined in the file it will encrypt the variable names as well and makes it harder to identify the source definition of a referenced variable.<br>
Also, encrypting the entire file will require ansible-vault commands to view or edit the contents of the file. A file containing individually encrypted values can be viewed and edited as any other file without uncovering the actual secret value.

`ansible-vault` will prompt for the vault password - either to be created for a new encrypted file, or to be used for decrypting existing content (for view or edit operations).
Expand All @@ -87,7 +87,7 @@ ansible-vault view file_containing_secrets.yml
ansible-vault edit file_containing_secrets.yml
```

This file can be included into a playbook similar to any other file include.
This file can be included into a playbook similar to any other file include.<br>
The playbook will only be usable when the correct vault password is provided to `ansible-playbook` for the runtime, see above.

## More features and information
Expand Down
1 change: 1 addition & 0 deletions roles/sap_anydb_install_oracle/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ The Ansible role `sap_anydb_install_oracle` is used to install Oracle Database 1
<!-- BEGIN Prerequisites -->
## Prerequisites
Managed Nodes:

- Directory with installation media is present and `sap_anydb_install_oracle_extract_path` updated.</br>
Download can be completed using [community.sap_launchpad](https://github.com/sap-linuxlab/community.sap_launchpad) Ansible Collection.
<!-- END Prerequisites -->
Expand Down
77 changes: 39 additions & 38 deletions roles/sap_general_preconfigure/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Install required collections by `ansible-galaxy collection install -vv -r meta/c
## Prerequisites

(Red Hat specific) Ensure system is installed according to:

- RHEL 8: SAP note 2772999, Red Hat Enterprise Linux 8.x: Installation and Configuration, section `Installing Red Hat Enterprise Linux 8`.
- RHEL 9: SAP note 3108316, Red Hat Enterprise Linux 9.x: Installation and Configuration, section `Installing Red Hat Enterprise Linux 9`.

Expand Down Expand Up @@ -64,52 +65,52 @@ Further referenced as `example.yml`

<!-- BEGIN Role Tags -->
### Role Tags

With the following tags, the role can be called to perform certain activities only:

- tag `sap_general_preconfigure_installation`: Perform only the installation tasks
- tag `sap_general_preconfigure_configuration`: Perform only the configuration tasks
- tag `sap_general_preconfigure_3108316`: Perform only the tasks(s) related to this SAP note.
- tag `sap_general_preconfigure_2772999_03`: Perform only the tasks(s) related to step 3 of the SAP note.
- tag `sap_general_preconfigure_etc_hosts`: Perform only the tasks(s) related to this step. This step might be one of multiple
configuration activities of a SAP note. Also this step might be valid for multiple RHEL major releases.

<details>
<summary><b>How to run sap_general_preconfigure with tags</b></summary>

#### Perform only installation tasks:
```console
ansible-playbook sap.yml --tags=sap_general_preconfigure_installation
```

#### Perform only configuration tasks:
```console
ansible-playbook sap.yml --tags=sap_general_preconfigure_configuration
```

#### Verify and modify /etc/hosts file:
```console
ansible-playbook sap.yml --tags=sap_general_preconfigure_etc_hosts
```

#### Perform all configuration steps except verifying and modifying the /etc/hosts file
```
ansible-playbook sap.yml --tags=sap_general_preconfigure_configuration --skip_tags=sap_general_preconfigure_etc_hosts
```

#### (Red Hat) Perform configuration activities related to SAP note 3108316 (RHEL 9)
```
ansible-playbook sap.yml --tags=sap_general_preconfigure_3108316
```

#### (Red Hat) Perform configuration activities related to step 2 (SELinux settings) of SAP note 3108316 (RHEL 9)
```
ansible-playbook sap.yml --tags=sap_general_preconfigure_3108316_02
```

#### (Red Hat) Perform all configuration activities except those related to step 2 (SELinux settings) of SAP note 3108316 (RHEL 9 specific)
```
ansible-playbook sap-general-preconfigure.yml --tags=sap_general_preconfigure_configuration --skip_tags=sap_general_preconfigure_3108316_02
```
</details>
#### How to run sap_general_preconfigure with tags

Perform only installation tasks:
```console
ansible-playbook sap.yml --tags=sap_general_preconfigure_installation
```

Perform only configuration tasks:
```console
ansible-playbook sap.yml --tags=sap_general_preconfigure_configuration
```

Verify and modify /etc/hosts file:
```console
ansible-playbook sap.yml --tags=sap_general_preconfigure_etc_hosts
```

Perform all configuration steps except verifying and modifying the /etc/hosts file
```
ansible-playbook sap.yml --tags=sap_general_preconfigure_configuration --skip_tags=sap_general_preconfigure_etc_hosts
```

(Red Hat) Perform configuration activities related to SAP note 3108316 (RHEL 9)
```
ansible-playbook sap.yml --tags=sap_general_preconfigure_3108316
```

(Red Hat) Perform configuration activities related to step 2 (SELinux settings) of SAP note 3108316 (RHEL 9)
```
ansible-playbook sap.yml --tags=sap_general_preconfigure_3108316_02
```

(Red Hat) Perform all configuration activities except those related to step 2 (SELinux settings) of SAP note 3108316 (RHEL 9 specific)
```
ansible-playbook sap-general-preconfigure.yml --tags=sap_general_preconfigure_configuration --skip_tags=sap_general_preconfigure_3108316_02
```
<!-- END Role Tags -->

<!-- BEGIN Further Information -->
Expand Down
4 changes: 4 additions & 0 deletions roles/sap_ha_install_anydb_ibmdb2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
The Ansible Role for instantiation of IBM Db2 'Integrated Linux Pacemaker' HADR cluster.

**NOTE:** IBM Db2 with 'Integrated Linux Pacemaker' can use two deployment models:

- Mutual Failover option, **not** covered by this Ansible Role
- High Availability and Disaster Recovery (HADR) option for Idle Standby, initialized by this Ansible Role
<!-- END Description -->
Expand All @@ -17,10 +18,13 @@ The Ansible Role for instantiation of IBM Db2 'Integrated Linux Pacemaker' HADR

<!-- BEGIN Prerequisites -->
## Prerequisites

Managed nodes:

- Directory with installation media is present and `sap_ha_install_anydb_ibmdb2_software_directory` updated. Download can be completed using [community.sap_launchpad](https://github.com/sap-linuxlab/community.sap_launchpad) Ansible Collection.

Software compatibility:

- This Ansible Role is applicable to IBM Db2 11.5 certified for SAP.
- It is applicable to 11.5.9 and later, which provides `db2cm` binary compatibility for AWS, GCP and MS Azure.
<!-- END Prerequisites -->
Expand Down
2 changes: 2 additions & 0 deletions roles/sap_ha_install_hana_hsr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ The Ansible Role `sap_ha_install_hana_hsr` is used to configure and enable SAP H
<!-- BEGIN Prerequisites -->
## Prerequisites
Managed nodes:

- Same Operating system version
- SAP HANA is installed with same version on both nodes.
<!-- END Prerequisites -->
Expand All @@ -25,6 +26,7 @@ Managed nodes:
<!-- BEGIN Execution Recommended -->
### Recommended
It is recommended to execute this role together with other roles in this collection, in the following order:

1. [sap_general_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_general_preconfigure)
2. [sap_hana_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_hana_preconfigure)
3. [sap_install_media_detect](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_install_media_detect)
Expand Down
Loading