5fc37fa6fb
Deploy arbitrary helper scripts to use them in configuration file
49 lines
1.6 KiB
Plaintext
49 lines
1.6 KiB
Plaintext
# -*- coding: utf-8 -*-
|
|
# vim: ft=sls
|
|
|
|
{#- Get the `tplroot` from `tpldir` #}
|
|
{%- set tplroot = tpldir.split('/')[0] %}
|
|
{%- set sls_package_install = tplroot ~ '.package.install' %}
|
|
{%- from tplroot ~ "/map.jinja" import keepalived with context %}
|
|
{%- from tplroot ~ "/libtofs.jinja" import files_switch with context %}
|
|
|
|
include:
|
|
- {{ sls_package_install }}
|
|
|
|
{#- Don't create scripts_dir if no scripts defined #}
|
|
{%- if 'scripts' in keepalived and keepalived.scripts %}
|
|
keepalived-scripts-manage-file-directory:
|
|
file.directory:
|
|
- name: {{ keepalived.scripts_dir }}
|
|
- makedirs: true
|
|
- require:
|
|
- sls: {{ sls_package_install }}
|
|
{%- endif %}
|
|
|
|
{%- for script,data in keepalived.scripts|dictsort %}
|
|
{%- set ensure = data.get('ensure', present) %}
|
|
{%- if ensure == 'present' %}
|
|
keepalived-scripts-manage-file-managed-{{ script }}:
|
|
file.managed:
|
|
- name: {{ data.get('dst_file', keepalived.scripts_dir ~ '/' ~ script) }}
|
|
- user: {{ data.get('user', 'root') }}
|
|
- group: {{ data.get('group', 'root') }}
|
|
- mode: {{ data.get('mode', '755') }}
|
|
- template: {{ data.get('template_engine', 'jinja') }}
|
|
{%- if 'contents' in data %}
|
|
- contents: |
|
|
{{ data.contents|indent(width=8) }}
|
|
{%- elif 'template_file' in data %}
|
|
- source: {{ files_switch([data.template_file]) }}
|
|
- context:
|
|
data: {{ data.context|tojson }}
|
|
{%- endif %}
|
|
- require:
|
|
- sls: {{ sls_package_install }}
|
|
{%- elif ensure == 'absent' %}
|
|
keepalived-scripts-manage-file-absent-{{ script }}:
|
|
file.absent:
|
|
- name: {{ data.get('dst_file', keepalived.scripts_dir ~ '/' ~ script) }}
|
|
{%- endif %}
|
|
{%- endfor %}
|