80 lines
2.4 KiB
Plaintext
80 lines
2.4 KiB
Plaintext
! Configuration File for keepalived
|
|
! Generated by Chef.
|
|
global_defs {
|
|
notification_email {
|
|
<% Array(node['keepalived']['global']['notification_emails']).each do |email| %>
|
|
<%= email %>
|
|
<% end %>
|
|
}
|
|
notification_email_from <%= node['keepalived']['global']['notification_email_from'] %>
|
|
smtp_server <%= node['keepalived']['global']['smtp_server'] %>
|
|
smtp_connect_timeout <%= node['keepalived']['global']['smtp_connect_timeout'] %>
|
|
router_id <%= node['keepalived']['global']['router_ids'][node.name] || node['keepalived']['global']['router_id'] %>
|
|
}
|
|
|
|
<% unless node['keepalived']['sync_groups'].nil? -%>
|
|
<% node['keepalived']['sync_groups'].each do |group, values| -%>
|
|
vrrp_sync_group <%= group.upcase %> {
|
|
group {
|
|
<% values['instances'].each do |instance| -%>
|
|
<%= instance.upcase %>
|
|
<% end -%>
|
|
}
|
|
<% values['options'].each do |option| -%>
|
|
<%= option %>
|
|
<% end -%>
|
|
}
|
|
<% end -%>
|
|
<% end -%>
|
|
|
|
<% node['keepalived']['check_scripts'].each_pair do |name, script| %>
|
|
vrrp_script <%= name %> {
|
|
script "<%= script['script'] %>"
|
|
interval <%= script['interval'] %>
|
|
weight <%= script['weight'] %>
|
|
}
|
|
<% end %>
|
|
|
|
<% node['keepalived']['instances'].each_pair do |name, instance| -%>
|
|
<%
|
|
states = instance['states'] || {}
|
|
priorities = instance['priorities'] || {}
|
|
virtual_router_ids = instance['virtual_router_ids'] || {}
|
|
-%>
|
|
vrrp_instance <%= name.upcase %> {
|
|
interface <%= instance['interface'] %>
|
|
virtual_router_id <%= virtual_router_ids[node.name] || node['keepalived']['instance_defaults']['virtual_router_id'] %>
|
|
<% if instance['nopreempt'] -%>
|
|
nopreempt
|
|
<% end -%>
|
|
state <%= states[node.name] || node['keepalived']['instance_defaults']['state'] %>
|
|
priority <%= priorities[node.name] || node['keepalived']['instance_defaults']['priority'] %>
|
|
<% if instance['advert_int'] -%>
|
|
advert_int <%= instance['advert_int'] %>
|
|
<% end -%>
|
|
<% if instance['unicast_peer'] && !instance['unicast_peer'].empty? -%>
|
|
unicast_peer {
|
|
<% Array(instance['unicast_peer']).each do |address| %>
|
|
<%= address %>
|
|
<% end %>
|
|
}
|
|
<% end -%>
|
|
<% if instance['auth_type'] -%>
|
|
authentication {
|
|
auth_type <%= instance['auth_type'].to_s.upcase %>
|
|
auth_pass <%= instance['auth_pass'] %>
|
|
}
|
|
<% end -%>
|
|
virtual_ipaddress {
|
|
<% Array(instance['ip_addresses']).each do |address| %>
|
|
<%= address %>
|
|
<% end %>
|
|
}
|
|
<% if instance['track_script'] %>
|
|
track_script {
|
|
<%= instance['track_script'] %>
|
|
}
|
|
<% end %>
|
|
}
|
|
<% end -%>
|