salt-stack:触发器,调用状态更改

salt-stack: Trigger, called on state change

我有一个在 minion 上创建用户的状态。

这很好用。

用户在第一个 运行 时创建,接下来的 N 天(或年)将不再创建。

我想在创建用户后在不同的主机上执行一些操作。出于性能原因,我只想在第一个 运行 创建用户时执行此操作一次。

到目前为止,我搜索了某种触发器,如果​​状态发生变化,它就会被触发。欢迎其他解决方案。

用例

在 minion 上创建用户后,我需要将 minions ssh 主机密钥插入到一个 .ssh/known_hosts 文件中,以使无密码登录工作。

为了解决用例而不是问题,我建议如下:

  • 使用盐矿收集你的爪牙的 public 钥匙
  • 将 minions 的 ssh 主机密钥放入 /etc/ssh/ssh_known_hosts

您可以使用 openssh formula 作为起点。它包含 Salt Mine 的脚本以及如何创建 ssh_known_hosts 文件。它为 dig 添加了很多魔法来发现可能对您的环境来说过大的主机名和 IP 地址。

设置完成后,它应该会按如下方式工作:

  • 添加用户:主机的 ssh_known_hosts 文件将被使用,无需执行任何其他操作
  • 添加一个 minion:更新矿井,运行 对所有 minions 的配置以更新主机的 ssh_known_hosts 文件。