diff --git a/form.yml b/form.yml index 8f513cd..02c9e5f 100644 --- a/form.yml +++ b/form.yml @@ -57,6 +57,21 @@ hana: $type: boolean $default: false $help: Enable the node monitoring via exporters which will be installed and configured in all the nodes. Customize the exporter configuration in each node's dedicated sections. + ha_dr_sustkover_enabled: + $name: Enable HANA HA/DR provdider hook susTkOver + $type: boolean + $default: true + $help: See https://documentation.suse.com/sbp/all/single-html/SLES4SAP-hana-sr-guide-PerfOpt-15/#cha.s4s.hana-hook for details. + ha_dr_suschksrv_enabled: + $name: Enable HANA HA/DR provdider hook susChkSrv + $type: boolean + $default: true + $help: See https://documentation.suse.com/sbp/all/single-html/SLES4SAP-hana-sr-guide-PerfOpt-15/#cha.s4s.hana-hook for details. + ha_dr_suschksrv_action_on_lost: + $name: Configure "Action on lost" for HANA HA/DR provider hook susChkSrv + $type: select + $values: [stop, fence] + $help: See `man 7 susChkSrv.py` and https://documentation.suse.com/sbp/all/single-html/SLES4SAP-hana-sr-guide-PerfOpt-15/#cha.s4s.hana-hook for details. nodes: $name: Nodes $type: edit-group diff --git a/hana/ha_cluster.sls b/hana/ha_cluster.sls index dee5760..7cc4914 100644 --- a/hana/ha_cluster.sls +++ b/hana/ha_cluster.sls @@ -3,9 +3,6 @@ {% if hana.scale_out %} {% set hook_path = '/usr/share/SAPHanaSR-ScaleOut' %} -{% set sr_hook_multi_target = hook_path + '/SAPHanaSrMultiTarget.py' %} -{% set sr_hook = hook_path + '/SAPHanaSR.py' %} -{% set sustkover_hook = hook_path + '/susTkOver.py' %} remove_SAPHanaSR: pkg.removed: @@ -21,9 +18,6 @@ install_SAPHanaSR: {% else %} {% set hook_path = '/usr/share/SAPHanaSR' %} -{% set sr_hook_multi_target = hook_path + '/SAPHanaSrMultiTarget.py' %} -{% set sr_hook = hook_path + '/SAPHanaSR.py' %} -{% set sustkover_hook = hook_path + '/susTkOver.py' %} remove_SAPHanaSR: pkg.removed: @@ -38,6 +32,24 @@ install_SAPHanaSR: - SAPHanaSR-doc {% endif %} +{% set sr_hook_multi_target = hook_path + '/SAPHanaSrMultiTarget.py' %} +{% set sr_hook = hook_path + '/SAPHanaSR.py' %} +{% set sustkover_hook = hook_path + '/susTkOver.py' %} +{% set suschksrv_hook = hook_path + '/susChkSrv.py' %} + +{% set sustkover_hook_enabled = True %} +{% set suschksrv_hook_enabled = True %} +{% set suschksrv_hook_action_on_lost = 'stop' %} +{% if hana.ha_dr_sustkover_enabled is defined %} + {% set sustkover_hook_enabled = hana.ha_dr_sustkover_enabled %} +{% endif %} +{% if hana.ha_dr_suschksrv_enabled is defined %} + {% set suschksrv_hook_enabled = hana.ha_dr_suschksrv_enabled %} +{% endif %} +{% if hana.ha_dr_suschksrv_action_on_lost is defined %} + {% set suschksrv_hook_action_on_lost = hana.ha_dr_suschksrv_action_on_lost %} +{% endif %} + # get HANA sites {% set sites = {} %} {% for node in hana.nodes %} @@ -182,6 +194,26 @@ configure_susTkOver_hook_{{ sap_instance }}: - pkg: install_SAPHanaSR - onlyif: - test -f {{ sustkover_hook }} + - test "True" == "{{ sustkover_hook_enabled }}" + +configure_susChkSrv_hook_{{ sap_instance }}: + ini.options_present: + - name: /hana/shared/{{ node.sid.upper() }}/global/hdb/custom/config/global.ini + - separator: '=' + - strict: False # do not touch rest of file + - sections: + ha_dr_provider_suschksrv: + provider: 'susChkSrv' + path: '{{ hook_path }}' + execution_order: '3' + action_on_lost: '{{ suschksrv_hook_action_on_lost }}' + trace: + ha_dr_suschksrv: 'info' + - require: + - pkg: install_SAPHanaSR + - onlyif: + - test -f {{ suschksrv_hook }} + - test "True" == "{{ suschksrv_hook_enabled }}" # Configure system replication operation mode in the primary site {% for secondary_node in hana.nodes if node.primary is defined and secondary_node.secondary is defined and secondary_node.secondary.remote_host == host %} diff --git a/pillar.example b/pillar.example index 97e050d..f72b41c 100644 --- a/pillar.example +++ b/pillar.example @@ -43,6 +43,16 @@ hana: # you can customize the exporter configuration in each node in the dedicated sections below monitoring_enabled: true + # HANA HA/DR provider configuration + # See https://documentation.suse.com/sbp/all/single-html/SLES4SAP-hana-sr-guide-PerfOpt-15/#cha.s4s.hana-hook for details. + # The SAPHanaSR hook is always enabled. + # disable susTkOver hook (enabled by default) + #ha_dr_sustkover_enabled: false + # disable susChkSrv hook (enabled by default) + #ha_dr_suschksrv_enabled: false + # susChkSrv action on lost, see `man 7 susChkSrv.py` (Options: stop [default], fence) + #ha_dr_suschksrv_action_on_lost: 'fence' + nodes: - host: 'hana01' sid: 'prd' diff --git a/saphanabootstrap-formula.changes b/saphanabootstrap-formula.changes index 489f7d7..b11fa2a 100644 --- a/saphanabootstrap-formula.changes +++ b/saphanabootstrap-formula.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Nov 6 08:37:35 UTC 2023 - Eike Waldt + +- Version bump 0.14.0 + * add susChkSrv HA/DR provider + * make providers configurable + ------------------------------------------------------------------- Mon Nov 7 08:59:19 UTC 2022 - Steven Stringer