diff --git a/balancers.yml b/balancers.yml index 17fa216bd..e440cb5c1 100644 --- a/balancers.yml +++ b/balancers.yml @@ -10,6 +10,8 @@ - vars/main.yml - vars/system.yml - "vars/{{ ansible_os_family }}.yml" + vars: + vip_manager_disable: false # or 'true' for disable vip-manager service (if installed) pre_tasks: - name: Checking Linux distribution @@ -68,6 +70,9 @@ - role: confd when: dcs_type == "etcd" + - role: vip-manager-disable + when: vip_manager_disable|bool + - role: keepalived when: cluster_vip is defined and cluster_vip | length > 0 diff --git a/roles/vip-manager-disable/tasks/main.yml b/roles/vip-manager-disable/tasks/main.yml new file mode 100644 index 000000000..ef1985c0b --- /dev/null +++ b/roles/vip-manager-disable/tasks/main.yml @@ -0,0 +1,7 @@ +--- +- name: Disabe vip-manager service + systemd: + daemon_reload: true + name: vip-manager + state: stopped + enabled: false diff --git a/roles/vip-manager/templates/vip-manager.service.j2 b/roles/vip-manager/templates/vip-manager.service.j2 index fbe73cb00..ccb65f5a6 100644 --- a/roles/vip-manager/templates/vip-manager.service.j2 +++ b/roles/vip-manager/templates/vip-manager.service.j2 @@ -7,6 +7,9 @@ Type=simple ExecStart=/usr/bin/vip-manager -config={{ vip_manager_conf }} +# VIP not released when service stopped https://github.com/cybertec-postgresql/vip-manager/issues/19 +ExecStopPost=/sbin/ip addr del {{ vip_manager_ip }}/{{ vip_manager_mask }} dev {{ vip_manager_iface }} + Restart=on-failure [Install]