From 1d0ab6e7e2e5a67fd3aeccb3d0479e0bcfe24a22 Mon Sep 17 00:00:00 2001 From: Rob Dobozy Date: Fri, 3 Jan 2025 18:19:24 +0000 Subject: [PATCH] sap_ha_pacemaker_cluster: Allow to append manual cluster config to the generated config --- roles/sap_ha_pacemaker_cluster/README.md | 18 +++++++++++++++++- .../tasks/construct_final_hacluster_vars.yml | 10 +++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/roles/sap_ha_pacemaker_cluster/README.md b/roles/sap_ha_pacemaker_cluster/README.md index a74280e4..10b338ef 100644 --- a/roles/sap_ha_pacemaker_cluster/README.md +++ b/roles/sap_ha_pacemaker_cluster/README.md @@ -89,7 +89,7 @@ It is recommended to execute this role together with other roles in this collect #### SAP Netweaver cluster 1. [sap_general_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_general_preconfigure) -2. [sap_netweaver_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_netweaver_preconfigure) +2. [sap_netweaver_preconfigure](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_netweaver_preconfigure) 3. [sap_install_media_detect](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_install_media_detect) 4. [sap_swpm](https://github.com/sap-linuxlab/community.sap_install/tree/main/roles/sap_swpm) 5. *`sap_ha_pacemaker_cluster`* @@ -1167,4 +1167,20 @@ Name of the NetWeaver SCS resource group.
Name of the Virtual IP resource for NetWeaver Central Services (SCS).
+### sap_ha_pacemaker_cluster_constraints_colocation_append
sap_ha_cluster_constraints_location_append
sap_ha_pacemaker_cluster_constraints_order_append
sap_ha_cluster_resource_clones_append
sap_ha_cluster_resource_primitives_append + +- _Type:_ `list` + +This role generally respects pre-defined ha_cluster* variables and tries to merge the configuration it generates with the content of the pre-defined variables.
+However, in some cases the order of resources is important. The above variables allow to append a specific cluster configuration AFTER the configuration generated by this role.
+ +The order in which cluster configuration is generated before it's passed to `ha_cluster` role is: +1. `ha_cluster*` variables (if defined). +2. Configuration created by this role based on provided parameters. +3. The content of `sap_ha_[pacemaker|cluster]*_append` variables is appended. +
+ +NOTE: The config in the `*_append` variables is appended only if this role has created entries in the equivalent HA cluster variable e.g. `ha_cluster_constraints_colocation` during the run. If nothing has been defined by this role, there is no reason to append anything. In this case just use the appropriate `ha_cluster*` variable (step 1. above). +
+ diff --git a/roles/sap_ha_pacemaker_cluster/tasks/construct_final_hacluster_vars.yml b/roles/sap_ha_pacemaker_cluster/tasks/construct_final_hacluster_vars.yml index 9c9af77f..d86f411f 100644 --- a/roles/sap_ha_pacemaker_cluster/tasks/construct_final_hacluster_vars.yml +++ b/roles/sap_ha_pacemaker_cluster/tasks/construct_final_hacluster_vars.yml @@ -69,17 +69,17 @@ - name: "SAP HA Prepare Pacemaker - (ha_cluster) Define parameter 'ha_cluster_constraints_colocation'" when: __sap_ha_pacemaker_cluster_constraints_colocation is defined ansible.builtin.set_fact: - ha_cluster_constraints_colocation: "{{ __sap_ha_pacemaker_cluster_constraints_colocation }}" + ha_cluster_constraints_colocation: "{{ __sap_ha_pacemaker_cluster_constraints_colocation + sap_ha_pacemaker_cluster_constraints_colocation_append | d([]) }}" - name: "SAP HA Prepare Pacemaker - (ha_cluster) Define parameter 'ha_cluster_constraints_location'" when: __sap_ha_pacemaker_cluster_constraints_location is defined ansible.builtin.set_fact: - ha_cluster_constraints_location: "{{ __sap_ha_pacemaker_cluster_constraints_location }}" + ha_cluster_constraints_location: "{{ __sap_ha_pacemaker_cluster_constraints_location + sap_ha_cluster_constraints_location_append | d([]) }}" - name: "SAP HA Prepare Pacemaker - (ha_cluster) Define parameter 'ha_cluster_constraints_order'" when: __sap_ha_pacemaker_cluster_constraints_order is defined ansible.builtin.set_fact: - ha_cluster_constraints_order: "{{ __sap_ha_pacemaker_cluster_constraints_order }}" + ha_cluster_constraints_order: "{{ __sap_ha_pacemaker_cluster_constraints_order + sap_ha_pacemaker_cluster_constraints_order_append | d([]) }}" - name: "SAP HA Prepare Pacemaker - (ha_cluster) Define parameter 'ha_cluster_extra_packages'" when: __sap_ha_pacemaker_cluster_extra_packages is defined @@ -105,7 +105,7 @@ - name: "SAP HA Prepare Pacemaker - (ha_cluster) Define parameter 'ha_cluster_resource_clones'" when: __sap_ha_pacemaker_cluster_resource_clones is defined ansible.builtin.set_fact: - ha_cluster_resource_clones: "{{ __sap_ha_pacemaker_cluster_resource_clones }}" + ha_cluster_resource_clones: "{{ __sap_ha_pacemaker_cluster_resource_clones + sap_ha_cluster_resource_clones_append | d([]) }}" - name: "SAP HA Prepare Pacemaker - (ha_cluster) Define parameter 'ha_cluster_resource_groups'" when: __sap_ha_pacemaker_cluster_resource_groups is defined @@ -115,7 +115,7 @@ - name: "SAP HA Prepare Pacemaker - (ha_cluster) Define parameter 'ha_cluster_resource_primitives'" when: __sap_ha_pacemaker_cluster_resource_primitives is defined ansible.builtin.set_fact: - ha_cluster_resource_primitives: "{{ __sap_ha_pacemaker_cluster_resource_primitives }}" + ha_cluster_resource_primitives: "{{ __sap_ha_pacemaker_cluster_resource_primitives + sap_ha_cluster_resource_primitives_append | d([]) }}" no_log: true # be paranoid, there could be credentials in it - name: "SAP HA Prepare Pacemaker - (ha_cluster) Define parameter 'ha_cluster_totem'"