SamSu 2d2a6e97e3 Add keepalived
Change-Id: Ib5cfe5a4dc3a16fbb82d650d077d0c6645643039
2014-03-21 17:29:15 -07:00

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 -%>