Skip to content

Commit 1543a07

Browse files
committed
orahost: Refactoring, splitting role for RHEL and SuSE
1 parent 6194ff5 commit 1543a07

File tree

12 files changed

+265
-289
lines changed

12 files changed

+265
-289
lines changed

roles/orahost/README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,6 +747,8 @@ transparent_hugepage_disable:
747747

748748
## Discovered Tags
749749

750+
**_always_**
751+
750752
**_asmlibconfig_**
751753

752754
**_etchosts_**
@@ -757,10 +759,16 @@ transparent_hugepage_disable:
757759

758760
**_hostfs_**
759761

762+
**_hugepages_**
763+
760764
**_iptables,firewalld_**
761765

766+
**_molecule-idempotence-notest_**
767+
762768
**_nozeroconf_**
763769

770+
**_orahost_assert_**
771+
764772
**_os_packages, oscheck_**
765773

766774
**_os_packages, oscheck, asm1_**
@@ -783,12 +791,16 @@ transparent_hugepage_disable:
783791

784792
**_sysctl,hugepages_**
785793

786-
**_thpnuma_**
794+
**_sysctl,hugepages,molecule-idempotence-notest_**
795+
796+
**_sysctl,molecule-idempotence-notest_**
787797

788798
**_timezone_**
789799

790800
**_tphnuma_**
791801

802+
**_tphnuma,molecule-idempotence-notest_**
803+
792804
**_user_**
793805

794806
## Open Tasks

roles/orahost/tasks/RedHat-6.yml

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,10 @@
11
---
2-
3-
- name: Count number of kernel lines that needs to be changed (numa=off transparent_hugepage=never)
4-
ansible.builtin.shell: cat /etc/grub.conf | grep title |wc -l
5-
# noqa risky-shell-pipe no-changed-when
6-
register: count
7-
tags: thpnuma
8-
9-
- name: Disable Transparent Hugepages (in grub.conf)
10-
ansible.builtin.lineinfile:
11-
dest: /boot/grub/grub.conf
12-
backup: true
13-
backrefs: true
14-
state: present
15-
regexp: '(^\s+kernel(\s+(?!transparent_hugepage=never)[\w=/\-\.]+)*)\s*$'
16-
line: '\1 transparent_hugepage=never'
17-
with_sequence: start=0 end={{ count.stdout }}
18-
tags: thpnuma
19-
20-
- name: Disable Numa (in grub.conf)
21-
ansible.builtin.lineinfile:
22-
dest: /boot/grub/grub.conf
23-
backup: true
24-
backrefs: true
25-
state: present
26-
regexp: '(^\s+kernel(\s+(?!numa=off)[\w=/\-\.]+)*)\s*$'
27-
line: '\1 numa=off'
28-
with_sequence: start=0 end={{ count.stdout }}
29-
tags: thpnuma
30-
when: disable_numa_boot
31-
322
- name: Disable Transparent Hugepages (runtime)
333
ansible.builtin.shell: if test -f {{ item.path }}; then {{ item.disable }} {{ item.path }}; fi;
344
# noqa no-changed-when
355
with_items:
366
- "{{ transparent_hugepage_disable }}"
37-
tags: tphnuma
7+
tags: tphnuma,molecule-idempotence-notest
388

399
- name: Disable Transparent Hugepages (permanently)
4010
ansible.builtin.lineinfile:
@@ -43,7 +13,7 @@
4313
state: present
4414
with_items:
4515
- "{{ transparent_hugepage_disable }}"
46-
tags: tphnuma
16+
tags: tphnuma,molecule-idempotence-notest
4717

4818
- name: Fix permissions on /etc/rc.d/rc.local
4919
ansible.builtin.file:

roles/orahost/tasks/RedHat-7.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

roles/orahost/tasks/RedHat-8.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

roles/orahost/tasks/RedHat.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
# OL8/RHEL8 has all needed RPMs in orahost role!
3+
- name: Install packages required by Oracle on OL/RHEL version 6 and 7
4+
ansible.builtin.yum:
5+
name: "{{ oracle_packages }}"
6+
state: installed
7+
enablerepo: "{{ extrarepos_enabled | default(omit, True) }}"
8+
disablerepo: "{{ extrarepos_disabled | default(omit, True) }}"
9+
when:
10+
- install_os_packages
11+
- ansible_distribution_major_version is version('7', '<=')
12+
tags: os_packages, oscheck
13+
14+
- name: Install packages required by Oracle for ASMlib on OL/RHEL
15+
ansible.builtin.yum:
16+
name: "{{ oracle_asm_packages }}"
17+
state: installed
18+
enablerepo: "{{ extrarepos_enabled | default(omit, True) }}"
19+
disablerepo: "{{ extrarepos_disabled | default(omit, True) }}"
20+
when:
21+
- install_os_packages | bool
22+
- device_persistence == 'asmlib'
23+
- asm_diskgroups is defined
24+
tags: os_packages, oscheck
25+
26+
- name: Disable Firewall
27+
when:
28+
- disable_firewall
29+
block:
30+
- name: Check if firewall is installed
31+
ansible.builtin.yum:
32+
list: "{{ firewall_service }}"
33+
disablerepo: "*"
34+
tags: iptables,firewalld
35+
register: firewall
36+
37+
- name: Disable firewall
38+
ansible.builtin.service:
39+
name: "{{ firewall_service }}"
40+
state: stopped
41+
enabled: false
42+
when:
43+
- firewall.results
44+
tags: iptables,firewalld
45+
register: iptables
46+
47+
- name: Disable selinux
48+
when:
49+
- disable_selinux
50+
tags: selinux
51+
block:
52+
- name: Disable selinux (permanently)
53+
ansible.posix.selinux:
54+
state: disabled
55+
register: selinux
56+
57+
- name: Disable selinux (runtime) # noqa command-instead-of-shell
58+
ansible.builtin.shell: setenforce 0
59+
changed_when: disable_selinux_runtime.rc == 0
60+
failed_when: disable_selinux_runtime.rc > 0 and "SELinux is disabled" not in disable_selinux_runtime.stderr
61+
register: disable_selinux_runtime
62+
63+
- name: Oracle-recommended security limits
64+
ansible.builtin.template:
65+
src: oracle-seclimits.conf.j2
66+
dest: /etc/security/limits.d/99-oracle-limits.conf
67+
backup: true
68+
mode: "0644"
69+
when:
70+
- configure_limits
71+
tags: seclimit
72+
73+
# RHEL/OL6 use a different way to disable transparent hugepages
74+
# => RHEL/OL6 is end of life. no more changes and development in ansible-oracle for it.
75+
# Keep old code...
76+
- name: Execute Distribution tasks for RHEL/OL6
77+
ansible.builtin.include_tasks: "{{ ansible_os_family }}-{{ ansible_distribution_major_version }}.yml"
78+
when:
79+
- ansible_os_family == 'RedHat'
80+
- ansible_distribution_major_version is version('6', '=')
81+
82+
- name: Transparent Hugepages for RHLE/OL7+
83+
when:
84+
- ansible_distribution_major_version is version('7', '>=')
85+
block:
86+
- name: Disable Transparent Hugepages (runtime)
87+
ansible.builtin.shell: if test -f {{ item.path }}; then {{ item.disable }} {{ item.path }}; fi;
88+
# noqa no-changed-when
89+
with_items:
90+
- "{{ transparent_hugepage_disable }}"
91+
tags: tphnuma,molecule-idempotence-notest
92+
93+
- name: Disable Transparent Hugepages (permanently)
94+
ansible.builtin.lineinfile:
95+
dest: "{{ item.rclocal }}"
96+
line: "{{ item.disable }} {{ item.path }}"
97+
state: present
98+
with_items:
99+
- "{{ transparent_hugepage_disable }}"
100+
tags: tphnuma,molecule-idempotence-notest
101+
102+
- name: Fix permissions on /etc/rc.d/rc.local
103+
ansible.builtin.file:
104+
path: "{{ item.rclocal }}"
105+
mode: "0755"
106+
with_items:
107+
- "{{ transparent_hugepage_disable }}"
108+
tags: tphnuma

roles/orahost/tasks/Suse-12.yml

Lines changed: 0 additions & 8 deletions
This file was deleted.

roles/orahost/tasks/Suse-15.yml

Lines changed: 0 additions & 8 deletions
This file was deleted.

roles/orahost/tasks/Suse.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
- name: Install custom packages required by Oracle on SLES (oracle_packages_sles)
3+
community.general.zypper:
4+
name: "{{ oracle_packages_sles }}"
5+
state: installed
6+
when:
7+
- oracle_packages_sles is defined
8+
- install_os_packages
9+
- ansible_os_family == 'Suse'
10+
tags: os_packages, oscheck
11+
12+
- name: Install default packages required by Oracle on SLES (version dependant)
13+
community.general.zypper:
14+
name: "{{ item.packages }}"
15+
state: installed
16+
with_items:
17+
- "{{ oracle_packages_sles_multi }}"
18+
loop_control:
19+
label: "{{ item.name | default('') }}"
20+
when:
21+
- not oracle_packages_sles is defined
22+
- install_os_packages
23+
- ansible_os_family == 'Suse'
24+
- item.condition | default(false)
25+
tags: os_packages, oscheck
26+
27+
- name: Install packages required by Oracle for ASMlib on SLES
28+
community.general.zypper:
29+
name: "{{ oracle_asm_packages_sles }}"
30+
state: installed
31+
when:
32+
- install_os_packages
33+
- device_persistence == 'asmlib'
34+
- asm_diskgroups is defined
35+
tags: os_packages, oscheck, asm1
36+
37+
- name: Disable Transparent Hugepages (runtime)
38+
ansible.builtin.shell: |
39+
[ -f /sys/kernel/mm/transparent_hugepage/enabled ] && echo never > /sys/kernel/mm/transparent_hugepage/enabled && echo changed
40+
[ -f /sys/kernel/mm/transparent_hugepage/defrag ] && echo never > /sys/kernel/mm/transparent_hugepage/defrag && echo changed
41+
register: tphnuma_result
42+
changed_when: "'changed' in tphnuma_result.stdout"
43+
tags: tphnuma
44+
45+
- name: Oracle-recommended security limits on SLES # noqa args[module]
46+
community.general.pam_limits:
47+
domain: oracle
48+
limit_type: "{{ item.name.split(' ')[0] }}"
49+
limit_item: "{{ item.name.split(' ')[1] }}"
50+
value: "{{ item.value }}"
51+
with_items: "{{ oracle_seclimits }}"
52+
when: ansible_os_family == 'Suse'
53+
tags: seclimit

roles/orahost/tasks/assert.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
- name: Check for correct OS family & min version
3+
ansible.builtin.assert:
4+
that:
5+
- "ansible_os_family == '{{ os_family_supported }}'"
6+
- "ansible_facts['distribution_version'] is version('{{ os_min_supported_version }}', '>=')"
7+
tags:
8+
- oscheck
9+
10+
- name: Assert variables
11+
ansible.builtin.assert:
12+
quiet: true
13+
that:
14+
- device_persistence in ('', 'asmlib', 'asmfd', 'udev')
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
- name: Asmlib | Add configuration
3+
ansible.builtin.template:
4+
src: oracleasm.j2
5+
dest: /etc/sysconfig/oracleasm-_dev_oracleasm
6+
mode: "0644"
7+
register: asmlibconfig
8+
when:
9+
- device_persistence | lower == 'asmlib'
10+
- asm_diskgroups is defined
11+
tags:
12+
- asmlibconfig
13+
14+
- name: Asmlib | Add configuration (link)
15+
ansible.builtin.file:
16+
src: /etc/sysconfig/oracleasm-_dev_oracleasm
17+
dest: /etc/sysconfig/oracleasm
18+
state: link
19+
force: true
20+
register: asmlibconfig
21+
when:
22+
- device_persistence | lower == 'asmlib'
23+
- asm_diskgroups is defined
24+
tags:
25+
- asmlibconfig
26+
27+
- name: Asmlib | Enable and start Oracle Asmlib
28+
ansible.builtin.service:
29+
name: oracleasm
30+
state: started
31+
enabled: true
32+
when:
33+
- device_persistence == 'asmlib'
34+
- asm_diskgroups is defined
35+
tags:
36+
- asmlibconfig
37+
38+
- name: Asmlib | Restart Asmlib # noqa no-handler
39+
ansible.builtin.service:
40+
name: oracleasm
41+
state: restarted
42+
when:
43+
- asm_diskgroups is defined
44+
- device_persistence == 'asmlib'
45+
- asmlibconfig.changed
46+
tags:
47+
- asmlibconfig

0 commit comments

Comments
 (0)