77 - name : Source hana install variables
88 include_vars : ./vars/sap-hana-install_vars.yaml
99 vars :
10+ is_primary : " {{ ansible_play_hosts[0] == inventory_hostname }}"
1011 hooks_dir : myHooks
1112 site_a : node01
1213 site_b : node02
1314 sap_hana_install_sid : HDB
1415 sap_hana_install_instance_number : 00
16+ hana_status : unknown
17+
18+ handlers :
19+ - name : Stop HANA
20+ ansible.builtin.command : " /usr/sap/hostctrl/exe/sapcontrol -nr {{ sap_hana_install_instance_number }} -function StopWait 600 10" # Stopwait will timeout after 600 seconds.
21+
22+ - name : Start HANA Primary
23+ ansible.builtin.command : " /usr/sap/hostctrl/exe/sapcontrol -nr {{ sap_hana_install_instance_number }} -function StartWait 600 10" # Stopwait will timeout after 600 seconds.
24+ when : is_primary
25+
26+ - name : Start HANA Secondary
27+ ansible.builtin.command : " /usr/sap/hostctrl/exe/sapcontrol -nr {{ sap_hana_install_instance_number }} -function StartWait 600 10" # Stopwait will timeout after 600 seconds.
28+ when : not is_primary
1529
1630 tasks :
1731
3145 owner : " {{ sap_hana_install_sid | lower }}adm"
3246 group : sapsys
3347 mode : ' 660'
34- register : copy_result
35-
36- - name : Stop HANA
37- ansible.builtin.command : " /usr/sap/hostctrl/exe/sapcontrol -nr {{ sap_hana_install_instance_number }} -function StopWait 600 10" # Stopwait will timeout after 600 seconds.
38- when : copy_result.changed # only stop HANA if the copy file did something, otherwise we'll stop it for no reason
39-
40- - name : Ensure ha_dr_provider_SAPHanaSR section exists in global.ini
41- community.general.ini_file :
42- path : /usr/sap/HDB/SYS/global/hdb/custom/config/global.ini
43- section : " {{ item.section }}"
44- option : " {{ item.key }}"
45- value : " {{ item.value }}"
46- mode : ' 0644'
47- backup : yes
48-
49- with_items :
50- - { 'section': 'ha_dr_provider_SAPHanaSR', 'key': 'provider', 'value': 'SAPHanaSR'}
51- - { 'section': 'ha_dr_provider_SAPHanaSR', 'key': 'path', 'value': '/hana/shared/{{ hooks_dir }}'}
52- - { 'section': 'ha_dr_provider_SAPHanaSR', 'key': 'execution_order', 'value': '1'}
53- - { 'section': 'trace', 'key': 'ha_dr_saphanasr', 'value': 'info'}
54- when : copy_result.changed
48+
49+ - name : Ensure System Replication hooks are installed and configured
50+ block :
51+ - name : Ensure ha_dr_provider_SAPHanaSR section exists in global.ini
52+ community.general.ini_file :
53+ path : /usr/sap/HDB/SYS/global/hdb/custom/config/global.ini
54+ section : " {{ item.section }}"
55+ option : " {{ item.key }}"
56+ value : " {{ item.value }}"
57+ mode : ' 0644'
58+ backup : yes
59+ loop :
60+ - { 'section': 'ha_dr_provider_SAPHanaSR', 'key': 'provider', 'value': 'SAPHanaSR'}
61+ - { 'section': 'ha_dr_provider_SAPHanaSR', 'key': 'path', 'value': '/hana/shared/{{ hooks_dir }}'}
62+ - { 'section': 'ha_dr_provider_SAPHanaSR', 'key': 'execution_order', 'value': '1'}
63+ - { 'section': 'trace', 'key': 'ha_dr_saphanasr', 'value': 'info'}
5564
56- - name : Add hooks into sudoers
57- ansible.builtin.lineinfile :
58- path : /etc/sudoers.d/HanaSystemReplication
59- state : present
60- regexp : " {{ item.regexp }}"
61- line : " {{ item.line }}"
62- validate : /usr/sbin/visudo -cf %s
63- create : yes
64- mode : ' 0440'
65- with_items :
66- - { 'regexp': '^#ANSIBLE MANAGED DOCUMENT', 'line': '#ANSIBLE MANAGED DOCUMENT - no manual edits!'}
67- - { 'regexp': '^Cmnd_Alias SOK_SITEA', 'line': 'Cmnd_Alias SOK_SITEA = /usr/sbin/crm_attribute -n hana_{{ sap_hana_install_sid | lower }}_site_srHook_{{ site_a }} -v SOK -t crm_config -s SAPHanaSR'}
68- - { 'regexp': '^Cmnd_Alias SFAIL_SITEA ', 'line': 'Cmnd_Alias SFAIL_SITEA = /usr/sbin/crm_attribute -n hana_{{ sap_hana_install_sid | lower }}_site_srHook_{{ site_a }} -v SFAIL -t crm_config -s SAPHanaSR'}
69- - { 'regexp': '^Cmnd_Alias SOK_SITEB', 'line': 'Cmnd_Alias SOK_SITEB = /usr/sbin/crm_attribute -n hana_{{ sap_hana_install_sid | lower }}_site_srHook_{{ site_b }} -v SOK -t crm_config -s SAPHanaSR'}
70- - { 'regexp': '^Cmnd_Alias SFAIL_SITEB', 'line': 'Cmnd_Alias SFAIL_SITEB = /usr/sbin/crm_attribute -n hana_{{ sap_hana_install_sid | lower }}_site_srHook_{{ site_b }} -v SFAIL -t crm_config -s SAPHanaSR'}
71- - { 'regexp': '^{{ sap_hana_install_sid | lower }}adm ALL=(ALL) NOPASSWD', 'line': '{{ sap_hana_install_sid | lower }}adm ALL=(ALL) NOPASSWD: SOK_SITEA, SFAIL_SITEA, SOK_SITEB, SFAIL_SITEB'}
72-
73- - name : Start HANA primary
74- ansible.builtin.command : " /usr/sap/hostctrl/exe/sapcontrol -nr {{ sap_hana_install_instance_number }} -function StartWait 600 10"
75- when :
76- - copy_result.changed # only start HANA if we stopped it
77- - ansible_hostname == 'vmahana01'
78-
79- - name : Start HANA secondary
80- ansible.builtin.command : " /usr/sap/hostctrl/exe/sapcontrol -nr {{ sap_hana_install_instance_number }} -function StartWait 600 10"
81- when :
82- - copy_result.changed # only start HANA if we stopped it
83- - ansible_hostname == 'vmahana02'
65+ - name : Add hooks into sudoers
66+ ansible.builtin.lineinfile :
67+ path : /etc/sudoers.d/HanaSystemReplication
68+ state : present
69+ regexp : " {{ item.regexp }}"
70+ line : " {{ item.line }}"
71+ validate : /usr/sbin/visudo -cf %s
72+ create : yes
73+ mode : ' 0440'
74+ loop :
75+ - { 'regexp': '^#ANSIBLE MANAGED DOCUMENT', 'line': '#ANSIBLE MANAGED DOCUMENT - no manual edits!'}
76+ - { 'regexp': '^Cmnd_Alias SOK_SITEA', 'line': 'Cmnd_Alias SOK_SITEA = /usr/sbin/crm_attribute -n hana_{{ sap_hana_install_sid | lower }}_site_srHook_{{ site_a }} -v SOK -t crm_config -s SAPHanaSR'}
77+ - { 'regexp': '^Cmnd_Alias SFAIL_SITEA ', 'line': 'Cmnd_Alias SFAIL_SITEA = /usr/sbin/crm_attribute -n hana_{{ sap_hana_install_sid | lower }}_site_srHook_{{ site_a }} -v SFAIL -t crm_config -s SAPHanaSR'}
78+ - { 'regexp': '^Cmnd_Alias SOK_SITEB', 'line': 'Cmnd_Alias SOK_SITEB = /usr/sbin/crm_attribute -n hana_{{ sap_hana_install_sid | lower }}_site_srHook_{{ site_b }} -v SOK -t crm_config -s SAPHanaSR'}
79+ - { 'regexp': '^Cmnd_Alias SFAIL_SITEB', 'line': 'Cmnd_Alias SFAIL_SITEB = /usr/sbin/crm_attribute -n hana_{{ sap_hana_install_sid | lower }}_site_srHook_{{ site_b }} -v SFAIL -t crm_config -s SAPHanaSR'}
80+ - { 'regexp': '^{{ sap_hana_install_sid | lower }}adm ALL=(ALL) NOPASSWD', 'line': '{{ sap_hana_install_sid | lower }}adm ALL=(ALL) NOPASSWD: SOK_SITEA, SFAIL_SITEA, SOK_SITEB, SFAIL_SITEB'}
81+ notify :
82+ - Stop HANA
83+ - Start HANA Primary
84+ - Start HANA Secondary
0 commit comments