mirror of https://github.com/ceph/ceph-ansible.git
ceph-rgw-loadbalancer: Fix keepalived master selection
Whilepull/6520/head2ca33641
fixed a bug in the way the `keepalived.conf.j2` template matched hostnames to set the VRRP `MASTER`/`BACKUP` states, it also introduced a regression in the case where `virtual_ips` is a list of more than one IP address. The previous behavior would result in each host in the `rgwloadbalancers` group to be `MASTER` for one of the `virtual_ips`, but the new behavior caused the first host to be `MASTER` for all the IP address in `virtual_ips`. This commit restores the original behavior. Signed-off-by: Benoît Knecht <bknecht@protonmail.ch> (cherry picked from commit3116f46422
)
parent
84a0ed440d
commit
6451d3681b
|
@ -19,7 +19,7 @@
|
|||
|
||||
- name: set_fact vip to vrrp_instance
|
||||
set_fact:
|
||||
vrrp_instances: "{{ vrrp_instances | default([]) | union([{ 'name': 'VI_' + index|string , 'vip': item }]) }}"
|
||||
vrrp_instances: "{{ vrrp_instances | default([]) | union([{ 'name': 'VI_' + index|string , 'vip': item, 'master': groups[rgwloadbalancer_group_name][index] }]) }}"
|
||||
loop: "{{ virtual_ips | flatten(levels=1) }}"
|
||||
loop_control:
|
||||
index_var: index
|
||||
|
|
|
@ -15,8 +15,8 @@ vrrp_script check_haproxy {
|
|||
|
||||
{% for instance in vrrp_instances %}
|
||||
vrrp_instance {{ instance['name'] }} {
|
||||
state {{ 'MASTER' if inventory_hostname == groups[rgwloadbalancer_group_name][0] else 'BACKUP' }}
|
||||
priority {{ '100' if inventory_hostname == groups[rgwloadbalancer_group_name][0] else '90' }}
|
||||
state {{ 'MASTER' if inventory_hostname == instance['master'] else 'BACKUP' }}
|
||||
priority {{ '100' if inventory_hostname == instance['master'] else '90' }}
|
||||
interface {{ virtual_ip_interface }}
|
||||
virtual_router_id {{ 50 + loop.index }}
|
||||
advert_int 1
|
||||
|
|
Loading…
Reference in New Issue