ansible/roles/keepalived/templates/keepalived/keepalived.conf.j2

57 lines
1.5 KiB
Django/Jinja

{{ ansible_header | comment }}
global_defs {
notification_email { {{ keepalived.mail_destination }} }
notification_email_from {{ keepalived.mail_source }}
smtp_server {{ keepalived.smtp_server }}
router_id {{ keepalived.routeur_id }}
}
{% for instance in keepalived.instances %}
vrrp_instance {{ instance.name }} {
state {{ instance.state }}
priority {{ instance.priority }}
smtp_alert
interface {{ interfaces.adm }}
virtual_router_id {{ keepalived.pool[instance.name].id }}
advert_int 2
{% if keepalived.pool[instance.name].notify is defined %}
notify {{ keepalived.pool[instance.name].notify }}
{% endif %}
virtual_ipaddress {
{% for zone in keepalived.pool[instance.name].zones %}
{% if zone.brd is undefined or zone.brd %}
{{ zone.ipv4 }} brd {{ zone.ipv4 | ansible.utils.ipaddr('broadcast') }} dev {{ interfaces[zone.vlan] }} scope global
{% else %}
{{ zone.ipv4 }} dev {{ interfaces[zone.vlan] }} scope global
{% endif %}
{% endfor %}
}
}
{% if keepalived.pool[instance.name].ipv6 %}
vrrp_instance {{ instance.name }}6 {
state {{ instance.state }}
priority {{ instance.priority }}
smtp_alert
interface {{ interfaces.adm }}
virtual_router_id {{ keepalived.pool[instance.name].id }}
advert_int 2
virtual_ipaddress {
{% for zone in keepalived.pool[instance.name].zones %}
{% if zone.ipv6 is defined %}
{% for ip in zone.ipv6 %}
{{ ip.ip }} dev {{ interfaces[zone.vlan] }} scope {{ ip.scope }}
{% endfor %}
{% endif %}
{% endfor %}
}
}
{% endif %}
{% endfor %}