如何更改默认的 saltenv?

How to change default saltenv?

我正在尝试更改我的 salt master 上的默认 saltenv 值。

我需要所有 minions 从我的 salt master 那里获得 production 环境。我删除了 base 环境,并进行了以下配置:

file_roots:
  production:
    - /srv/salt/production/states
    - /srv/salt/production/formulas
pillar_roots:
  production:
    - /srv/salt/production/pillar

并且:

state_top_saltenv: production
default_top: production
top_file_merging_strategy: same

但是,当我 运行 :

salt 'myminion' state.highstate 我得到: No Top file or master_tops data matches found. Please see master log for details.

运行state.apply,有效。

这是为什么?如何获得 state.apply 和 state.highstate 相应的行为?

我通过尝试理解文档获得了这些设置,但我知道它没有按照我想要的方式配置:

为了从 base saltenv 迁移到 production,我做了以下工作:

  • 在状态 top.sls 中,更改所有 base: 次出现
  • 在支柱top.sls中,做同样的事情
  • 在 minion 配置中用 saltenv: production
  • 指定它的环境

如果您使用 default_top: production,则可能不需要最后一步。

我想就这些了,我有一些带有厨房测试的最小代码来验证它,如果你需要的话我可以分享。

更新default_top: production足以使高状态正确运行,但如果您想运行特定状态(with salt <minion> state.sls foo) => 您需要在 command-line 中指定 saltenv 参数或将其添加到您的 minion 配置中