Все функции стека соли могут быть установлены как переменные?
Я ошибочно подумал, что если вы можете запустить функцию из командной строки в 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']() %}
Это должно работать для вас. Это сработало в моих тестах.