【问题标题】:Saltstack cmd.run on minion and store output in a file on masterSaltstack cmd.run 在 minion 上运行并将输出存储在 master 上的文件中
【发布时间】:2018-12-11 19:35:14
【问题描述】:
我在我的 consul 服务器上运行了“consul keygen”来获取加密密钥。我想将该密钥存储在 salt-master 服务器上,并在其他州使用它来创建 consul 代理配置文件。
/srv/salt/consul-server.sls
{% set consulMasterKey = salt['cmd.run']('consul keygen') %}
【问题讨论】:
标签:
salt-stack
provisioning
consul
infrastructure
【解决方案1】:
如果我正确理解您的问题...
您想一次性生成一个密钥并将其存储以供将来使用。
因此,运行命令生成密钥(不一定通过 salt),并将此密钥保存为您的 salt master/minions(取决于谁应该访问)或支柱文件中的颗粒,然后您可以从任何状态访问它。
grains 最适合服务器属性,而支柱最适合组/环境属性(例如,如果您希望所有 Windows 服务器都具有特定配置)。
设置粒度(命令行):
salt 'your-salt-master/minion' grains.append consulKey youKey
获取颗粒值(从命令行):
salt 'your-salt-master/minion' grains.get consulKey
获取谷物值(来自状态):
{%- set key = salt['grains.get']('consulKey') %}
获取支柱值(来自状态):
{%- set key = salt['pillar.get']('consulKey') %}