# Autogenerated by VyOS # Do not edit this file, all your changes will be lost # on next commit or reboot global_defs { dynamic_interfaces script_user root notify_fifo /run/keepalived/keepalived_notify_fifo notify_fifo_script /usr/libexec/vyos/system/keepalived-fifo.py } {% if group is defined and group is not none %} {% for name, group_config in group.items() if group_config.disable is not defined %} {% if group_config.health_check is defined and group_config.health_check.script is defined and group_config.health_check.script is not none %} vrrp_script healthcheck_{{ name }} { script "{{ group_config.health_check.script }}" interval {{ group_config.health_check.interval }} fall {{ group_config.health_check.failure_count }} rise 1 } {% endif %} vrrp_instance {{ name }} { {% if group_config.description is defined and group_config.description is not none %} # {{ group_config.description }} {% endif %} state BACKUP interface {{ group_config.interface }} virtual_router_id {{ group_config.vrid }} priority {{ group_config.priority }} advert_int {{ group_config.advertise_interval }} {% if group_config.track is defined and group_config.track.exclude_vrrp_interface is defined %} dont_track_primary {% endif %} {% if group_config.no_preempt is not defined and group_config.preempt_delay is defined and group_config.preempt_delay is not none %} preempt_delay {{ group_config.preempt_delay }} {% elif group_config.no_preempt is defined %} nopreempt {% endif %} {% if group_config.peer_address is defined and group_config.peer_address is not none %} unicast_peer { {{ group_config.peer_address }} } {% endif %} {% if group_config.hello_source_address is defined and group_config.hello_source_address is not none %} {% if group_config.peer_address is defined and group_config.peer_address is not none %} unicast_src_ip {{ group_config.hello_source_address }} {% else %} mcast_src_ip {{ group_config.hello_source_address }} {% endif %} {% endif %} {% if group_config.rfc3768_compatibility is defined and group_config.peer_address is defined %} use_vmac {{ group_config.interface }}v{{ group_config.vrid }} vmac_xmit_base {% elif group_config.rfc3768_compatibility is defined %} use_vmac {{ group_config.interface }}v{{ group_config.vrid }} {% endif %} {% if group_config.authentication is defined and group_config.authentication is not none %} authentication { auth_pass "{{ group_config.authentication.password }}" {% if group_config.authentication.type == 'plaintext-password' %} auth_type PASS {% else %} auth_type {{ group_config.authentication.type | upper }} {% endif %} } {% endif %} {% if group_config.virtual_address is defined and group_config.virtual_address is not none %} virtual_ipaddress { {% for addr, addr_config in group_config.virtual_address.items() %} {{ addr }}{{ ' dev ' + addr_config.interface if addr_config.interface is defined }} {% endfor %} } {% endif %} {% if group_config.virtual_address_excluded is defined and group_config.virtual_address_excluded is not none %} virtual_ipaddress_excluded { {% for addr in group_config.virtual_address_excluded %} {{ addr }} {% endfor %} } {% endif %} {% if group_config.track is defined and group_config.track.interface is defined and group_config.track.interface is not none %} track_interface { {% for interface in group_config.track.interface %} {{ interface }} {% endfor %} } {% endif %} {% if group_config.health_check is defined and group_config.health_check.script is defined and group_config.health_check.script is not none %} track_script { healthcheck_{{ name }} } {% endif %} } {% endfor %} {% endif %} {% if sync_group is defined and sync_group is not none %} {% for name, sync_group_config in sync_group.items() if sync_group_config.disable is not defined %} vrrp_sync_group {{ name }} { group { {% if sync_group_config.member is defined and sync_group_config.member is not none %} {% for member in sync_group_config.member %} {{ member }} {% endfor %} {% endif %} } {# Health-check scripts should be in section sync-group if member is part of the sync-group T4081 #} {% if vrrp is defined and vrrp.group is defined and vrrp.group is not none %} {% for name, group_config in group.items() if group_config.disable is not defined %} {% if group_config.health_check is defined and group_config.health_check.script is defined and group_config.health_check.script is not none and name in sync_group_config.member %} track_script { healthcheck_{{ name }} } {% endif %} {% endfor %} {% endif %} {% if conntrack_sync_group is defined and conntrack_sync_group == name %} {% set vyos_helper = "/usr/libexec/vyos/vyos-vrrp-conntracksync.sh" %} notify_master "{{ vyos_helper }} master {{ name }}" notify_backup "{{ vyos_helper }} backup {{ name }}" notify_fault "{{ vyos_helper }} fault {{ name }}" {% endif %} } {% endfor %} {% endif %}