Все функции стека соли могут быть установлены как переменные?

Я ошибочно подумал, что если вы можете запустить функцию из командной строки в SaltStack, вы можете установить этот вывод в качестве переменной. Например, рассмотрим следующее, которое выводит часовой пояс всех миньонов:

salt '*' timezone.get_zone

Выводит одну строку вроде Etc/UTC как часовой пояс. Я пишу функцию для запуска некоторых заданий cron в зависимости от часового пояса локального сервера. Тем не менее, в шаблоне дзиндзя, когда я установил:

...
{% set timezone = salt['timezone.get_zone'] %}

{% if timezone == 'America/Los_Angeles' %}
0 23 * * * root somecommand
{% else %}
# TIMEZONE NOT FOUND
{% endif %}
....

Я всегда получаю # TIMEZONE NOT FOUND выход для этого шаблона. Если я попытаюсь передать часовой пояс через context внутри файла SLS для формулы я получаю следующее после рендеринга:

<function get_zone at 0x7fb48a7c9f50>

Какие-либо предложения?

1 ответ

Решение

<function get_zone at 0x7fb48a7c9f50> это ключ. salt['timezone.get_zone'] возвращает функцию. Чтобы на самом деле это называть, нужно поставить после него паренсы, поэтому ваша строка должна выглядеть так:

{% set timezone = salt['timezone.get_zone']() %}

Это должно работать для вас. Это сработало в моих тестах.

Другие вопросы по тегам