Skip to content

Commit 85de6d2

Browse files
committed
feat: hana and netweaver preconfigure for Suse
1 parent 4425cd1 commit 85de6d2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+1640
-786
lines changed

roles/sap_general_preconfigure/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ The IPV4 address to be used for updating or checking `/etc/hosts` entries.<br>
432432
### sap_general_preconfigure_db_group_name
433433
- _Type:_ `str`
434434

435-
Use this variable to specify the name of the RHEL group which is used for the database processes.<br>
435+
(RedHat specific) Use this variable to specify the name of the RHEL group which is used for the database processes.<br>
436436
If defined, it will be used to configure process limits as per step<br>
437437
Configuring Process Resource Limits<br>
438438

roles/sap_general_preconfigure/defaults/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ sap_general_preconfigure_envgroups: "{{ __sap_general_preconfigure_envgroups }}"
7979
# Example: See README.md
8080

8181
sap_general_preconfigure_packages: "{{ __sap_general_preconfigure_packages }}"
82-
# The list of packages to install.
82+
# The list of packages to be installed.
8383
# The default for this variable is set in the vars file which corresponds to the detected OS version.
8484

8585
sap_general_preconfigure_min_package_check: true
@@ -164,7 +164,7 @@ sap_general_preconfigure_domain: "{{ sap_domain | d(ansible_domain) }}"
164164
# The DNS domain name to be used for updating or checking `/etc/hosts` entries.
165165

166166
# sap_general_preconfigure_db_group_name: (not defined by default)
167-
# Use this variable to specify the name of the RHEL group which is used for the database processes.
167+
# (RedHat specific) Use this variable to specify the name of the RHEL group which is used for the database processes.
168168
# If defined, it will be used to configure process limits as per step
169169
# Configuring Process Resource Limits
170170
# Example: See README.md

roles/sap_general_preconfigure/handlers/main.yml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
- sap_general_preconfigure_run_grub2_mkconfig | d(true)
2020

2121
- name: "Run grub-mkconfig (BIOS mode)"
22-
ansible.builtin.command: grub2-mkconfig -o /boot/grub2/grub.cfg
22+
ansible.builtin.command:
23+
cmd: grub2-mkconfig -o /boot/grub2/grub.cfg
2324
register: __sap_general_preconfigure_register_grub2_mkconfig_bios_mode
2425
changed_when: true
2526
listen: __sap_general_preconfigure_regenerate_grub2_conf_handler
@@ -52,7 +53,8 @@
5253
- ansible_distribution == 'SLES' or ansible_distribution == 'SLES_SAP'
5354

5455
- name: "Run grub-mkconfig (UEFI mode)"
55-
ansible.builtin.command: "grub2-mkconfig -o {{ __sap_general_preconfigure_uefi_boot_dir }}"
56+
ansible.builtin.command:
57+
cmd: "grub2-mkconfig -o {{ __sap_general_preconfigure_uefi_boot_dir }}"
5658
register: __sap_general_preconfigure_register_grub2_mkconfig_uefi_mode
5759
changed_when: true
5860
listen: __sap_general_preconfigure_regenerate_grub2_conf_handler
@@ -85,8 +87,8 @@
8587
- name: Wait for Zypper lock to be released
8688
ansible.builtin.command:
8789
cmd: zypper info zypper
88-
retries: 60
89-
timeout: 5
90+
retries: 20
91+
timeout: 30
9092
listen: __sap_general_preconfigure_reboot_handler
9193
when:
9294
- ansible_os_family == 'Suse'
@@ -110,16 +112,25 @@
110112
- not sap_general_preconfigure_fail_if_reboot_required | d(true)
111113
- not sap_general_preconfigure_reboot_ok | d(false)
112114

115+
- name: Unmask packagekit.service
116+
ansible.builtin.systemd_service:
117+
name: packagekit.service
118+
masked: false
119+
listen: __sap_general_preconfigure_packagekit_handler
120+
121+
113122
# Reasons for noqa:
114123
# - command-instead-of-module: We want to avoid non-ansible.builtin modules where possible
115124
# - no-changed-when: Remounting does not do any harm and does not affect idempotency.
116125
- name: Remount /dev/shm # noqa command-instead-of-module no-changed-when
117-
ansible.builtin.command: mount -o remount /dev/shm
126+
ansible.builtin.command:
127+
cmd: mount -o remount /dev/shm
118128
listen: __sap_general_preconfigure_mount_tmpfs_handler
119129
tags: molecule-idempotence-notest
120130

121131
- name: Check if /dev/shm is available
122-
ansible.builtin.command: df -h /dev/shm
132+
ansible.builtin.command:
133+
cmd: df -h /dev/shm
123134
register: __sap_general_preconfigure_command_df_shm_result
124135
changed_when: false
125136
listen: __sap_general_preconfigure_mount_tmpfs_handler

roles/sap_general_preconfigure/tasks/SLES/assert-installation.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
cmd: "rpm -q --whatprovides {{ item }}"
77
register: __sap_general_preconfigure_register_whatprovides
88
changed_when: false
9+
ignore_errors: true
910
loop: "{{ sap_general_preconfigure_packages }}"
1011

1112

@@ -41,6 +42,8 @@
4142
- name: Get info about possible package updates # noqa command-instead-of-module
4243
ansible.builtin.command:
4344
cmd: zypper -q patch-check
45+
timeout: 120
46+
retries: 5
4447
register: __sap_general_preconfigure_register_zypper_check_update_assert
4548
changed_when: false
4649
ignore_errors: true # true, because unpatched system is always error.
@@ -76,3 +79,15 @@
7679
fail_msg: "FAIL: System needs to be restarted!"
7780
success_msg: "PASS: System needs no restart."
7881
ignore_errors: "{{ sap_general_preconfigure_assert_ignore_errors | d(false) }}"
82+
83+
84+
- name: Assert saptune is at requested version
85+
ansible.builtin.assert:
86+
that: ansible_facts.packages['saptune'][0]['version'] == sap_general_preconfigure_saptune_version
87+
fail_msg: "FAIL: saptune version installed is {{ ansible_facts.packages['saptune'][0]['version']
88+
}} but the version {{ sap_general_preconfigure_saptune_version }} was expected"
89+
success_msg: "PASS: the installed version of saptune meets the expected version: {{ sap_general_preconfigure_saptune_version }}"
90+
when:
91+
- __sap_general_preconfigure_use_saptune
92+
- sap_general_preconfigure_saptune_version is defined
93+
- sap_general_preconfigure_saptune_version | length > 0

roles/sap_general_preconfigure/tasks/SLES/generic/grub_update.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131

3232

3333
- name: Trigger grub update if necessary # noqa no-changed-when
34-
ansible.builtin.command: /bin/true
34+
ansible.builtin.command:
35+
cmd: /bin/true
3536
notify: __sap_general_preconfigure_regenerate_grub2_conf_handler
3637
when:
3738
- (__sap_general_preconfigure_grub_update.results | selectattr('changed', 'equalto', true) | list | length > 0)

roles/sap_general_preconfigure/tasks/SLES/generic/saptune_install.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,17 @@
2121
when: __sap_general_preconfigure_use_saptune | d(true)
2222
block:
2323
- name: Ensure latest saptune is installed
24-
community.general.zypper:
25-
type: package
24+
ansible.builtin.package:
2625
name: saptune
2726
state: present
2827
when:
2928
- sap_general_preconfigure_saptune_version is undefined
3029
or sap_general_preconfigure_saptune_version | length == 0
3130

3231
- name: Ensure specific saptune version is installed
33-
community.general.zypper:
34-
type: package
32+
ansible.builtin.package:
3533
name: "saptune={{ sap_general_preconfigure_saptune_version }}"
3634
state: present
37-
force: true
3835
when:
3936
- sap_general_preconfigure_saptune_version is defined
4037
- sap_general_preconfigure_saptune_version | length > 0
@@ -44,8 +41,6 @@
4441
when: not __sap_general_preconfigure_use_saptune | d(true)
4542
block:
4643
- name: Ensure sapconf is installed
47-
community.general.zypper:
48-
type: package
44+
ansible.builtin.package:
4945
name: "sapconf"
5046
state: present
51-
force: true

roles/sap_general_preconfigure/tasks/SLES/generic/saptune_takeover.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
when: "'sapconf' in ansible_facts.packages"
2424

2525
- name: Make sure that sapconf and tuned are stopped and disabled
26-
ansible.builtin.command: "saptune service takeover"
26+
ansible.builtin.command:
27+
cmd: "saptune service takeover"
2728
register: __sap_general_preconfigure_register_saptune_takeover
2829
changed_when: __sap_general_preconfigure_register_saptune_takeover.rc == 0
2930

@@ -54,14 +55,15 @@
5455
changed_when: false
5556

5657

57-
- name: Enable saptune solution
58+
- name: Check active saptune solution
5859
when:
5960
- __sap_general_preconfigure_use_saptune
6061
- __sap_general_preconfigure_register_saptune_check_before.rc == 0
6162
or (__sap_general_preconfigure_register_saptune_check_after.rc == 0)
6263
block:
6364
- name: Discover active solution
64-
ansible.builtin.command: saptune solution enabled
65+
ansible.builtin.command:
66+
cmd: saptune solution enabled
6567
register: __sap_general_preconfigure_register_saptune_status
6668
changed_when: false
6769

roles/sap_general_preconfigure/tasks/SLES/installation.yml

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,34 @@
11
# SPDX-License-Identifier: Apache-2.0
22
---
33

4-
# Both sap_general_preconfigure_packages and __sap_general_preconfigure_min_pkgs are installed at same time.
4+
- name: Gather service facts
5+
ansible.builtin.service_facts:
6+
7+
# Service packagekit is part of PackageKit-backend-zypp (SLE-Module-Desktop-Applications)
8+
# This service creates zypper locks and causes package install failures.
9+
# Service cannot be disabled and we have to mask its execution.
10+
- name: Mask packagekit.service when present
11+
ansible.builtin.systemd_service:
12+
name: packagekit.service
13+
masked: true
14+
when: "'packagekit.service' in ansible_facts.services"
15+
notify: __sap_general_preconfigure_packagekit_handler
16+
17+
18+
- name: Wait for stop of packagekit.service
19+
ansible.builtin.shell: |
20+
set -o pipefail && bash -c '
21+
while (ps aux | grep "[z]ypper" | grep -v grep) || (ps aux | grep "/usr/lib/packagekitd" | grep -v grep) ||
22+
([ -f /var/run/zypp.pid ] && [ -s /var/run/zypp.pid ]); do
23+
sleep 10;
24+
done'
25+
register: __packagekit_service_check
26+
changed_when: false
27+
until: __packagekit_service_check.rc == 0
28+
retries: 60
29+
when: "'packagekit.service' in ansible_facts.services"
30+
31+
532
- name: Ensure that the required packages are installed
633
ansible.builtin.package:
734
state: present
@@ -10,8 +37,7 @@
1037

1138

1239
- name: Install minimum packages if required
13-
community.general.zypper:
14-
type: package
40+
ansible.builtin.package:
1541
name: '{{ line_item[0] }}>={{ line_item[1] }}'
1642
state: present
1743
loop: "{{ __sap_general_preconfigure_min_pkgs }}"
@@ -22,16 +48,16 @@
2248
- __sap_general_preconfigure_min_pkgs | d([])
2349

2450

25-
# Reason for noqa: Both yum and dnf support "state: latest"
51+
# Reason for noqa: Zypper supports "state: latest"
2652
- name: Ensure that the system is updated to the latest patchlevel # noqa package-latest
2753
ansible.builtin.package:
2854
state: latest
2955
name: "*"
56+
register: __sap_general_preconfigure_register_update_latest
3057
when: sap_general_preconfigure_update | bool
3158

3259

33-
# Sapconf is present on: SLES 15
34-
# Saptune is present on: SLES_SAP 15, SLES_SAP 16
60+
# 1275776 - Linux: Preparing SLES for SAP environments
3561
- name: Install saptune if available
3662
ansible.builtin.include_tasks:
3763
file: generic/saptune_install.yml
@@ -43,7 +69,8 @@
4369

4470
# Reason for noqa: The command to be executed might contain pipes
4571
- name: Determine if the system needs to be restarted # noqa command-instead-of-shell
46-
ansible.builtin.shell: "zypper ps"
72+
ansible.builtin.shell:
73+
cmd: "zypper ps"
4774
register: __sap_general_preconfigure_register_needs_restarting
4875
ignore_errors: true
4976
changed_when: false
@@ -62,17 +89,21 @@
6289
- name: For needs-restarting - Set the flag that reboot is needed to apply changes
6390
ansible.builtin.set_fact:
6491
sap_general_preconfigure_fact_reboot_required: true
65-
when: __sap_general_preconfigure_register_needs_restarting is failed
92+
when:
93+
- __sap_general_preconfigure_register_needs_restarting is failed
94+
or __sap_general_preconfigure_register_update_latest.changed
6695

6796
- name: For needs-restarting - Display the content of sap_general_preconfigure_fact_reboot_required
6897
ansible.builtin.debug:
6998
var: sap_general_preconfigure_fact_reboot_required
7099

71100

72101
- name: Call Reboot handler if necessary
73-
ansible.builtin.command: /bin/true
102+
ansible.builtin.command:
103+
cmd: /bin/true
74104
notify: __sap_general_preconfigure_reboot_handler
75105
changed_when: true
76106
when:
77107
- __sap_general_preconfigure_register_needs_restarting is failed
78108
or __sap_general_preconfigure_register_needs_restarting.rc == 102
109+
or __sap_general_preconfigure_register_update_latest.changed

roles/sap_general_preconfigure/tasks/sapnote/2578899.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,11 @@
1212

1313
- name: Set fact for SAP note number 2578899
1414
ansible.builtin.set_fact:
15-
__sap_general_preconfigure_packages_2578899:
16-
- uuidd
17-
- sysstat
18-
- sysctl-logger
1915
__sap_general_preconfigure_services_2578899:
2016
- uuidd.socket
2117
- sysstat
2218
- sysctl-logger.service
19+
2320
__sap_general_preconfigure_grub_cmdline_2578899: []
2421
# I/O Scheduler parameter is already part of default saptune and sapconf configuration.
2522
# - "elevator=noop"
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# SPDX-License-Identifier: Apache-2.0
22
---
33

4-
- name: Ensure that the required packages are installed - 2578899
4+
- name: Ensure that the required packages are installed
55
ansible.builtin.package:
6+
name: "{{ __sap_general_preconfigure_packages_2578899 }}"
67
state: present
7-
name: "{{ item }}"
8-
loop: "{{ __sap_general_preconfigure_packages_2578899 }}"

0 commit comments

Comments
 (0)