如何存储静态数据以供 Reactor 和 minions 使用?

How can I store static data to be available for both Reactor and minions?

我希望存储我的 slack api 密钥,以便可以从 Reactor 状态和 minions 执行的状态(例如 运行 高状态时)访问它:

slack_api_key: xxx

如果我将数据添加到支柱,则只能从执行状态的小兵访问它:

{{ salt['pillar.get']('slack_api_key') }}

如果我将数据添加到主配置,则只能从 Reactor 访问它:

{{ opts['slack_api_key'] }}

如何存储此数据并能够从 Reactor 和我的 highstate 中包含的状态访问它?

一种解决方案是在 master 配置中设置以下内容:

# The pillar_opts option adds the master configuration file data to a dict in
# the pillar called "master". This is used to set simple configurations in the
# master config file that can then be used on minions.
pillar_opts: True

# Slack API key
slack_api_key: 'xxx'

然后 master 配置中的任何数据都可以像这样访问...

来自小兵:

{{ salt['pillar.get']('master:slack_api_key') }}
- or - 
{{ pillar['master']['slack_api_key'] }}

来自反应堆:

{{ opts['slack_api_key'] }}

然而,这不是一个很好的答案,因为 master 配置中的任何 数据现在暴露给小兵。

您可以尝试为此使用 sdb。

https://docs.saltstack.com/en/latest/topics/sdb/