我已经开始使用Saltstack控制所有的虚拟机。 我已经设置了两个独立的环境, init和base ,分别在新部署的虚拟机和正在进行的configurationpipe理上安装minion。 成功部署了一个小兵后,它就坚持从两个环境中的状态! 我不要那个。 只能根据base环境进行pipe理。
为什么它使用这两个环境,我怎么强迫它在初始部署之后不再关心init环境?
部署了一个新的虚拟机,我使用salt-ssh来build立仓库,安装salt minion并启动它。 之后,我salt来pipe理我的虚拟机。 所以对于每一个新的虚拟机我(一次)
salt-ssh -i 'anewhost' state.apply
之后我做/ cron呢
salt '*' state.apply
我的文件根目录的configuration是我的主configuration文件的唯一内容:
file_roots: base: - /srv/salt/base init: - /srv/salt/init
为了使虚拟机成为一个小工具,我使用了一个名单文件。 /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 salt进行state.apply时,状态是从/srv/salt/base/top.sls开始/srv/salt/base/top.sls 会发生什么事情, salt-ssh行为与预期的完全相同,但salt创造了一些统一的憎恶,实际上包含了两个状态,由init和base描述。
salt显然记得init环境,并把它拉进来,不pipe我做什么。 我如何让它忘记init环境?
我通过增加我的init状态来修复它以将environment: base添加到/etc/salt/minion 。 这实际上使得奴才忽略了init环境。 但为什么首先要尊重它呢? 背后的想法不是让盐做不同的事情吗?
这可能不是真的回答你的问题,无论如何,在我的设置中,我只是使用基础环境,我使用saltify做盐bootstrap。 这样你根本不需要init环境