强制重建奴才的状态?

强制重建奴才的状态?

总结

我已开始使用 Saltstack 控制所有虚拟机。我已设置两个独立的环境initbase,分别用于在新部署的 VM 上安装 minion 和进行持续配置管理。成功部署 minion 后,它会遵循两个环境的状态!我不想这样。它应该只根据环境进行管理base

init为什么它会使用这两种环境,以及在初始部署之后,如何强制它不再关心环境?


部署新虚拟机后,我使用它salt-ssh来设置存储库、安装 salt minion 并启动它。之后,我用它salt来管理我的虚拟机。因此,对于每个新虚拟机,我都会执行(一次)

salt-ssh -i 'anewhost' state.apply

然后我做/cron做

salt '*' state.apply

我的文件根目录的配置是我主配置文件的唯一内容:

file_roots:
  base:
    - /srv/salt/base
  init:
    - /srv/salt/init

为了使 VM 成为 minion,我使用了一个名册文件。/etc/salt/roster其中每个块如下所示:

anewhost:
  host: anewhost.mydomain.tld
  user: root
  passwd: rootpw
  minion_opts:
    environment: init

这个想法是

  • 当我state.apply使用时salt-ssh,状态是从开始构建的/srv/salt/init/top.sls
  • 当我state.apply使用时salt,状态是从开始构建的/srv/salt/base/top.sls

所发生的情况是,其salt-ssh行为与预期完全一致,但salt创建了一些实际上包含两种状态的统一的憎恶,由init和描述base

显然,无论我做什么,它salt都会记住init环境并将其引入。我该如何让它忘记环境init

编辑:快速修复

我通过增加我的init状态来environment: base解决这个问题/etc/salt/minion。这实际上使 minion 忽略了init环境。但它为什么一开始就尊重它呢?环境背后的想法不是让 salt 做不同的事情吗?

答案1

这可能并没有真正回答你的问题,无论如何,在我的设置中,我只使用基础环境,并使用 salt bootstrap盐化init. 这样你就根本不需要环境了

相关内容