使用 cmd.run 设置颗粒

Use cmd.run in setting a grains

对于一个项目,我想使用模块在 saltstack grains 中设置时间戳。 但我不知道如何使用 cmd.run... 目前,我尝试类似的方法:

salt-call grains.set date_install_minion salt['cmd.run']('date -u')
salt-call grains.set date_install_minion {% salt['cmd.run']('date -u') %}
salt-call grains.set date_install_minion {{ salt['cmd.run']('date -u') }}
...

有人知道怎么做吗?

cmd.run 的输出用于 grains.set 命令可能无法在同一步骤中工作,因为没有可用的 Jinja 上下文。也就是说,在 Saltstack 中添加 custom grains 的一个好方法是将它们放入 /etc/salt/grains 文件中。

可以使用 YAML 格式的键值对更新此文件。使用命令更新它的一种方法:

echo "date_install_minion: $(date -u)" >> /etc/salt/grains

否则将date设置为Shell变量,并在grains.set中使用shell变量:

MINION_INSTALL_DATE=$(date -u)
salt-call grains.set date_install_minion "$MINION_INSTALL_DATE"