45 lines
1.2 KiB
Plaintext
45 lines
1.2 KiB
Plaintext
|
|
global_defs {
|
||
|
|
enable_script_security
|
||
|
|
script_user "{{ vip_script_user }}"
|
||
|
|
{% if vip_alerts_to | default([]) | length > 0 %}
|
||
|
|
|
||
|
|
notification_email {
|
||
|
|
{% for dest in vip_alerts_to %}
|
||
|
|
{{ dest }}
|
||
|
|
{% endfor %}
|
||
|
|
}
|
||
|
|
notification_email_from {{ vip_smtp_from }}
|
||
|
|
smtp_server {{ vip_smtp_relay }}
|
||
|
|
smtp_connect_timeout 30
|
||
|
|
router_id {{ ansible_hostname }}
|
||
|
|
{% endif %}
|
||
|
|
}
|
||
|
|
|
||
|
|
vrrp_script chk_{{ vip_monitored_process }} {
|
||
|
|
script "/usr/bin/killall -0 {{ vip_monitored_process }}" # Check if process is running
|
||
|
|
interval 2 # Check every 2 seconds
|
||
|
|
weight 2 # Weight to influence master election
|
||
|
|
}
|
||
|
|
{% for ip in vip_vrrp_ips %}
|
||
|
|
|
||
|
|
# master: {{ ip.master }}
|
||
|
|
vrrp_instance VI_{{ ip.virtual_router_id }} {
|
||
|
|
state {{ (ansible_hostname==ip.master) | ternary('MASTER', 'BACKUP') }}
|
||
|
|
interface eth0
|
||
|
|
virtual_router_id {{ ip.virtual_router_id }}
|
||
|
|
priority {{ (ansible_hostname==ip.master) | ternary('101', '100') }}
|
||
|
|
advert_int 1
|
||
|
|
promote_secondaries
|
||
|
|
smtp_alert true
|
||
|
|
authentication {
|
||
|
|
auth_type PASS
|
||
|
|
auth_pass {{ vip_vrrp_password }}
|
||
|
|
}
|
||
|
|
virtual_ipaddress {
|
||
|
|
{{ ip.addr }}
|
||
|
|
}
|
||
|
|
track_script {
|
||
|
|
chk_{{ vip_monitored_process }}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
{% endfor %}
|