-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathaws-cluster-hana.yaml
More file actions
135 lines (124 loc) · 5.18 KB
/
aws-cluster-hana.yaml
File metadata and controls
135 lines (124 loc) · 5.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
---
- name: Get cluster status
ansible.builtin.command:
cmd: crm configure show
register: crm_conf_hana_show
changed_when: false
when: is_primary
- name: Set hana crm facts
ansible.builtin.set_fact:
crm_maintenance_mode: "{{ (crm_conf_hana_show.stdout | regex_search('maintenance-mode=([a-z]*)', '\\1'))[0] | default('unknown') }}"
stonith_timeout: "{{ crm_conf_hana_show.stdout | regex_search('stonith-timeout') }}" # this should be variable!
hana_resource: "{{ crm_conf_hana_show.stdout | regex_search('primitive rsc_SAPHanaCtl_') }}"
hana_clone: "{{ crm_conf_hana_show.stdout | regex_search('ms msl_SAPHanaCtl_') }}"
hana_topology_resource: "{{ crm_conf_hana_show.stdout | regex_search('primitive rsc_SAPHanaTpg') }}"
hana_topology_clone: "{{ crm_conf_hana_show.stdout | regex_search('clone cln_SAPHanaTpg') }}"
ip_resource: "{{ crm_conf_hana_show.stdout | regex_search('primitive rsc_ip_') }}"
ip_nc: "{{ crm_conf_hana_show.stdout | regex_search('primitive rsc_socat_') }}"
ip_grp: "{{ crm_conf_hana_show.stdout | regex_search('group g_ip_') }}"
ip_colo: "{{ crm_conf_hana_show.stdout | regex_search('colocation col_saphana_ip_') }}"
cluster_order: "{{ crm_conf_hana_show.stdout | regex_search('order ord_SAPHana_') }}"
when: is_primary
changed_when: false
- name: Ensure maintenance mode is active
ansible.builtin.command:
cmd: crm configure property maintenance-mode=true
when: crm_maintenance_mode is false or crm_maintenance_mode == 'unknown'
- name: Create HANA topology resource
ansible.builtin.command:
cmd: >-
crm configure primitive
rsc_SAPHanaTpg_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
ocf:suse:SAPHanaTopology
operations
$id="rsc_sap2_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}-operations"
op monitor interval="10" timeout="600"
op start interval="0" timeout="600"
op stop interval="0" timeout="300"
params SID="{{ sap_hana_install_sid }}"
InstanceNumber="{{ sap_hana_install_instance_number }}"
when:
- hana_topology_resource | length == 0
- is_primary
- name: Create HANA topology clone
ansible.builtin.command:
cmd: >-
crm configure clone
cln_SAPHanaTpg_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
rsc_SAPHanaTpg_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
meta
clone-node-max="1"
target-role="Started"
interleave="true"
when:
- hana_topology_clone | length == 0
- is_primary
- name: Create HANA resource
ansible.builtin.command:
cmd: >-
crm configure primitive
rsc_SAPHanaCtl_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
ocf:suse:SAPHana
operations
$id="rsc_sap_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}-operations"
op start interval="0" timeout="3600"
op stop interval="0" timeout="3600"
op promote interval="0" timeout="3600"
op monitor interval="60" role="Master" timeout="700"
op monitor interval="61" role="Slave" timeout="700"
params
SID="{{ sap_hana_install_sid }}"
InstanceNumber="{{ sap_hana_install_instance_number }}"
PREFER_SITE_TAKEOVER="true"
DUPLICATE_PRIMARY_TIMEOUT="7200"
AUTOMATED_REGISTER="false"
when:
- hana_resource | length == 0
- is_primary
- name: Create HANA resource clone
ansible.builtin.command:
cmd: >-
crm configure ms
msl_SAPHanaCtl_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
rsc_SAPHanaCtl_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
meta
notify="true"
clone-max="2"
clone-node-max="1"
target-role="Started"
interleave="true"
when:
- hana_clone | length == 0
- is_primary
- name: Configure colocation
ansible.builtin.command:
cmd: >-
crm configure colocation
col_saphana_ip_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
2000:
rsc_ip_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}:Started
msl_SAPHanaCtl_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}:Master
when: ip_colo | length == 0
- name: Configure order
ansible.builtin.command:
cmd: >-
crm configure order
ord_SAPHana
Optional:
cln_SAPHanaTpg_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
msl_SAPHanaCtl_{{ sap_hana_install_sid }}_HDB{{ sap_hana_install_instance_number }}
when: cluster_order | length == 0
# Get current maintenance state
- name: Refresh cluster status
ansible.builtin.command:
cmd: crm configure show
register: refreshed_crm_conf_show
changed_when: false
- name: Set crm facts
ansible.builtin.set_fact:
refreshed_crm_maintenance_mode: "{{ (refreshed_crm_conf_show.stdout | regex_search('maintenance-mode=([a-z]*)', '\\1'))[0] | default('unknown') }}"
changed_when: false
- name: Ensure maintenance mode is disabled
ansible.builtin.command:
cmd: crm configure property maintenance-mode=false
when: refreshed_crm_maintenance_mode is true or refreshed_crm_maintenance_mode == 'unknown'