Filip Pytloun | 4ab64a0 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 1 | {% from "keepalived/map.jinja" import cluster with context %} |
| 2 | |
| 3 | {%- if cluster.enabled %} |
| 4 | |
| 5 | keepalived_packages: |
| 6 | pkg.installed: |
| 7 | - names: {{ cluster.pkgs }} |
| 8 | |
Simon Pasquier | 2f09ff7 | 2017-01-03 14:26:12 +0100 | [diff] [blame] | 9 | {%- if pillar.collectd is defined %} |
| 10 | keepalived_packages_for_collectd: |
| 11 | pkg.installed: |
| 12 | - names: {{ cluster.collectd_pkgs }} |
| 13 | {%- endif %} |
| 14 | |
Filip Pytloun | 4ab64a0 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 15 | keepalived_config: |
| 16 | file.managed: |
| 17 | - name: {{ cluster.config }} |
| 18 | - source: salt://keepalived/files/keepalived.conf |
| 19 | - template: jinja |
| 20 | - require: |
| 21 | - pkg: keepalived_packages |
| 22 | |
Jakub Pavlik | 2680d65 | 2016-08-26 17:35:40 +0200 | [diff] [blame] | 23 | {% for instance_name, instance in cluster.instance.iteritems() %} |
| 24 | |
Jakub Pavlik | 7b75ce7 | 2016-08-26 18:04:58 +0200 | [diff] [blame] | 25 | {%- if instance.notify_action is defined %} |
Jakub Pavlik | 2680d65 | 2016-08-26 17:35:40 +0200 | [diff] [blame] | 26 | |
| 27 | keepalived_{{ instance_name }}_notify: |
| 28 | file.managed: |
Filip Pytloun | 424120b | 2016-08-26 19:31:42 +0200 | [diff] [blame] | 29 | - name: /usr/local/bin/keepalived_notify_{{ instance_name }}.sh |
| 30 | - mode: 755 |
| 31 | - source: salt://keepalived/files/keepalived_notify.sh |
Jakub Pavlik | 2680d65 | 2016-08-26 17:35:40 +0200 | [diff] [blame] | 32 | - template: jinja |
Ales Komarek | c0e7d03 | 2016-08-26 17:46:28 +0200 | [diff] [blame] | 33 | - defaults: |
Filip Pytloun | 424120b | 2016-08-26 19:31:42 +0200 | [diff] [blame] | 34 | notify_action: {{ instance.notify_action }} |
Jakub Pavlik | 2680d65 | 2016-08-26 17:35:40 +0200 | [diff] [blame] | 35 | - require: |
| 36 | - pkg: keepalived_packages |
| 37 | - require_in: |
| 38 | - service: keepalived_service |
| 39 | |
| 40 | {%- endif %} |
| 41 | |
| 42 | {% endfor %} |
| 43 | |
Petr Michalec | 8863f47 | 2017-05-05 15:57:22 +0200 | [diff] [blame] | 44 | {%- set _deployed = [] %} |
Petr Michalec | 97aab16 | 2017-02-21 14:16:18 +0100 | [diff] [blame] | 45 | {%- for name, script in cluster.get('vrrp_scripts', {}).iteritems() %} |
Petr Michalec | 8863f47 | 2017-05-05 15:57:22 +0200 | [diff] [blame] | 46 | {%- if script.get('name', name) not in _deployed %}keepalived_vrrp_script_{{ script.get('name', name) }}:{% else %}{% continue %}{% endif %} |
| 47 | {%- do _deployed.append(script.get('name', name)) %} |
Petr Michalec | 97aab16 | 2017-02-21 14:16:18 +0100 | [diff] [blame] | 48 | file.managed: |
Petr Michalec | 8863f47 | 2017-05-05 15:57:22 +0200 | [diff] [blame] | 49 | - name: /usr/local/bin/vrrp_script_{{ script.get('name', name) }}.sh |
Petr Michalec | 97aab16 | 2017-02-21 14:16:18 +0100 | [diff] [blame] | 50 | - mode: 755 |
| 51 | - source: |
Petr Michalec | 8863f47 | 2017-05-05 15:57:22 +0200 | [diff] [blame] | 52 | - salt://keepalived/files/vrrp_script_{{ script.get('name', name) }}.sh |
Petr Michalec | 97aab16 | 2017-02-21 14:16:18 +0100 | [diff] [blame] | 53 | - salt://keepalived/files/vrrp_script.sh |
| 54 | - template: jinja |
| 55 | - defaults: |
Petr Michalec | 8863f47 | 2017-05-05 15:57:22 +0200 | [diff] [blame] | 56 | script: {{ script|yaml }} |
Petr Michalec | 97aab16 | 2017-02-21 14:16:18 +0100 | [diff] [blame] | 57 | - require_in: |
| 58 | - service: keepalived_service |
| 59 | {% endfor %} |
| 60 | |
Filip Pytloun | 4ab64a0 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 61 | keepalived_service: |
| 62 | service.running: |
| 63 | - name: {{ cluster.service }} |
| 64 | - enable: true |
| 65 | - reload: true |
Aleš Komárek | 074ee81 | 2016-11-09 11:27:20 +0100 | [diff] [blame] | 66 | {%- if grains.get('init', None) != 'systemd' %} |
| 67 | - sig: keepalived |
| 68 | {%- endif %} |
Filip Pytloun | 4ab64a0 | 2015-10-06 16:28:32 +0200 | [diff] [blame] | 69 | - watch: |
| 70 | - file: keepalived_config |
| 71 | |
Jakub Pavlik | 7b75ce7 | 2016-08-26 18:04:58 +0200 | [diff] [blame] | 72 | {%- endif %} |