我想知道如何使用SaltStack Grains
正確訪問Environmental Variables
。使用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 ...
所以關鍵在那裏,但價值不是。當我從Python命令行運行os.environ.get('T17_SECRET_KEY','')
時,值就在那裏。
這可能是什麼原因造成的?
編輯
我已經改變了這一點:
/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
我看不到Value,只有Key。
我甚至跑過salt '*' state.highstate
重新載入所有內容。
這是否可能是由其他配置造成的?
@Aaron_Digulla你可以在上面看到我的編輯?我改變了功能,但仍然無法訪問環境變量的值。謝謝。 –
你如何設置'T17_SECRET_KEY',你在哪裏做?當你執行'echo $ T17_SECRET_KEY'時,你看到了正確的值嗎? –
@Aaron_Digulla我將我的工作解決方案添加到您的答案中。感謝您對此的幫助。我不知道'salt.modules.environ',並不知道使用它。謝謝。 –