Я хотел бы знать, как правильно получить доступ к Environmental Variables
с помощью SaltStack Grains
.Доступ к переменным окружения с зернами SaltStack
Я следил за documentation, но не смог получить его работу. Вот код, который у меня есть:
/srv/salt/_grains/env_vars.py
import os
def env_vars():
return {'T17_SECRET_KEY': os.environ.get('T17_SECRET_KEY','')}
Я затем запустить salt '*' saltutil.sync_grains
И я получаю такой ответ:
salt:
- grains.env_vars
Но когда я бегу salt '*' grains.items
, он показывает:
salt:
----------
SSDs:
T17_SECRET_KEY:
# other vars ...
Итак, ключ есть, но это не так. Когда я запускаю os.environ.get('T17_SECRET_KEY','')
из командной строки Python, значение есть.
Что может быть причиной этого?
EDIT
Я изменил эту:
/srv/salt/_grains/env_vars.py
from salt.modules import environ
def env_vars():
return {'T17_SECRET_KEY': environ.get('T17_SECRET_KEY','')}
Когда я исполняю эту функцию из строки Python командной строки он возвращает значение Key: Value, но все же при запуске salt '*' saltutil.sync_grains
и salt '*' grains.items
Я не вижу значение, только ключ.
Я даже побежал salt '*' state.highstate
, чтобы перезагрузить все.
Возможно, это связано с другой конфигурацией?
@Aaron_Digulla вы можете увидеть мое редактирование выше ? Я изменил функцию, но я все еще не могу получить доступ к значению переменной среды. Спасибо. –
Как вы устанавливаете 'T17_SECRET_KEY' и где вы это делаете? Вы видите правильное значение, когда вы выполняете 'echo $ T17_SECRET_KEY'? –
@Aaron_Digulla Я добавил свое рабочее решение к вашему ответу. Благодарим вас за помощь. Я не знал о «salt.modules.environ» и не знал бы этого. Благодарю. –