blob: 63bab465cbf87678622e11fc7e0cba61d9726be4 [file] [log] [blame]
{% from "keepalived/map.jinja" import cluster with context %}
{%- if cluster.enabled %}
keepalived_packages:
pkg.installed:
- names: {{ cluster.pkgs }}
{%- if pillar.collectd is defined %}
keepalived_packages_for_collectd:
pkg.installed:
- names: {{ cluster.collectd_pkgs }}
{%- endif %}
keepalived_config:
file.managed:
- name: {{ cluster.config }}
- source: salt://keepalived/files/keepalived.conf
- template: jinja
- require:
- pkg: keepalived_packages
{% for instance_name, instance in cluster.instance.iteritems() %}
{%- if instance.notify_action is defined %}
keepalived_{{ instance_name }}_notify:
file.managed:
- name: /usr/local/bin/keepalived_notify_{{ instance_name }}.sh
- mode: 755
- source: salt://keepalived/files/keepalived_notify.sh
- template: jinja
- defaults:
notify_action: {{ instance.notify_action }}
- require:
- pkg: keepalived_packages
- require_in:
- service: keepalived_service
{%- endif %}
{% endfor %}
{%- set _deployed = [] %}
{%- for name, script in cluster.get('vrrp_scripts', {}).iteritems() %}
{%- if script.get('name', name) not in _deployed %}keepalived_vrrp_script_{{ script.get('name', name) }}:{% else %}{% continue %}{% endif %}
{%- do _deployed.append(script.get('name', name)) %}
file.managed:
- name: /usr/local/bin/vrrp_script_{{ script.get('name', name) }}.sh
- mode: 755
- source:
- salt://keepalived/files/vrrp_script_{{ script.get('name', name) }}.sh
- salt://keepalived/files/vrrp_script.sh
- template: jinja
- defaults:
script: {{ script|yaml }}
- require_in:
- service: keepalived_service
{% endfor %}
keepalived_service:
service.running:
- name: {{ cluster.service }}
- enable: true
- reload: true
{%- if grains.get('init', None) != 'systemd' %}
- sig: keepalived
{%- endif %}
- watch:
- file: keepalived_config
{%- endif %}