运行 子目录中的多个状态
Running multiple states in a sub-directory
我想用一个命令 运行 多个状态,但作为测试,我只是用一个命令看看它是否有效。
反正当我运行
sudo salt 'minion' state.apply DirectX
它可以正常安装。但这是当它位于 /srv/salt
.
时
当我创建一个新目录 /srv/salt/windows/states
并将我的 SLS 文件放在那里时,就像之前的 DirectX.sls
一样。然后我创建一个名为 runall.sls
的新 SLS
在 /srv/salt。我喜欢runall.sls:
base:
'*':
- windows.states.DirectX
和运行
sudo salt 'dss' state.sls runall
我得到:
minion:
----------
ID: base
Function: minion.windows.states.DirectX
Result: False
Comment: State '*.windows.states.DirectX' was not found in SLS 'runall'
Reason: '*.windows.states.DirectX' is not available.
Changes:
Summary for minion
------------
Succeeded: 0
Failed: 1
------------
Total states run: 1
Total run time: 0.000 ms
我知道我肯定做错了什么,因为这应该很简单,但如果你能给我指出正确的方向,那就太好了。
Salt版本:2016.3.4(minion和master)
OS:红帽企业 Linux 服务器 6.6 圣地亚哥
您需要区分 top files 和普通状态文件 - 默认情况下两者都有 .sls
文件后缀。
top 文件基本上用于将 minions 或一组 minions 上的状态捆绑在一起,而 states 用于真正配置特定的东西。
通常有一个 top.sls
用于您的环境,它知道哪些 minions 应该具有哪些状态。如果您之后使用 salt '*' state.highstate
为您的 minion 配置的所有状态都已应用。
根据您的需要,拥有不同的顶级文件可能是个好主意。您可以使用 salt '*' state.top /path/to/another_top.sls
来应用这个特定的顶级文件。
还有另一种完全不使用顶级文件的方法来实现您的要求。
状态内部有 include
[1]。您可能会考虑在 /srv/salt/bundleX.sls
中创建,它只使用 include 指令将您的 windows 状态捆绑在一起,如下所示:
include:
- windows.states.DirectX
- windows.states.Foobar
但如果没有什么反对top.sls
,建议使用上述顶级文件。
我想用一个命令 运行 多个状态,但作为测试,我只是用一个命令看看它是否有效。
反正当我运行
sudo salt 'minion' state.apply DirectX
它可以正常安装。但这是当它位于 /srv/salt
.
当我创建一个新目录 /srv/salt/windows/states
并将我的 SLS 文件放在那里时,就像之前的 DirectX.sls
一样。然后我创建一个名为 runall.sls
的新 SLS
在 /srv/salt。我喜欢runall.sls:
base:
'*':
- windows.states.DirectX
和运行
sudo salt 'dss' state.sls runall
我得到:
minion:
----------
ID: base
Function: minion.windows.states.DirectX
Result: False
Comment: State '*.windows.states.DirectX' was not found in SLS 'runall'
Reason: '*.windows.states.DirectX' is not available.
Changes:
Summary for minion
------------
Succeeded: 0
Failed: 1
------------
Total states run: 1
Total run time: 0.000 ms
我知道我肯定做错了什么,因为这应该很简单,但如果你能给我指出正确的方向,那就太好了。
Salt版本:2016.3.4(minion和master) OS:红帽企业 Linux 服务器 6.6 圣地亚哥
您需要区分 top files 和普通状态文件 - 默认情况下两者都有 .sls
文件后缀。
top 文件基本上用于将 minions 或一组 minions 上的状态捆绑在一起,而 states 用于真正配置特定的东西。
通常有一个 top.sls
用于您的环境,它知道哪些 minions 应该具有哪些状态。如果您之后使用 salt '*' state.highstate
为您的 minion 配置的所有状态都已应用。
根据您的需要,拥有不同的顶级文件可能是个好主意。您可以使用 salt '*' state.top /path/to/another_top.sls
来应用这个特定的顶级文件。
还有另一种完全不使用顶级文件的方法来实现您的要求。
状态内部有 include
[1]。您可能会考虑在 /srv/salt/bundleX.sls
中创建,它只使用 include 指令将您的 windows 状态捆绑在一起,如下所示:
include:
- windows.states.DirectX
- windows.states.Foobar
但如果没有什么反对top.sls
,建议使用上述顶级文件。