SaltStack - 编排
一般来说,编排是一种系统的自动协调和安排。Orchestrate 运行器用于在 SaltStack 中执行编排。
Orchestrate 运行器
Orchestrate 运行器提供 OverState(以前的系统)的所有功能。它最初被称为 state.sls 运行器。此编排运行器用于将 Salt 状态系统推广到 Salt master 上下文。
state.sls 和 state.highstate 函数在每个 Salt minion 上执行,但 state.orchestrate 运行器在 master 上执行。state.orchestrate 运行器允许您将整个基础设施完全作为状态进行管理。让我们了解如何完成一个简单的执行过程。
简单执行
Orchestrate Runner 命令与 state.sls 函数相同,但您可以使用"salt-run"而不是 salt 来执行它。
假设您有一个位于 /srv/salt/orch/samples.sls 的 sample.sls 文件。在该文件中添加以下代码。
sample.sls
install_nginx: salt.state: - tgt: 'web*' - sls: - nginx
以下命令用于在主服务器上运行,它将应用该文件中定义的状态。
salt-run state.orchestrate orch.sample
它将产生以下输出 −
saltmaster.local_master: ---------- ID: install_nginx Function: salt.state Result: True Comment: States ran successfully. Started: 11:54:56.308078 Duration: 63.401 ms Changes: Summary for saltmaster.local_master ------------ Succeeded: 1 Failed: 0 ------------ Total states run: 1 Total run time: 63.401 ms root@saltmaster:/home/vagrant#
此处,根据当前版本,运行器函数已重命名为 state.orchestrate。这将有助于避免与 state.sls 执行函数混淆,但必须使用 state.sls 的先前版本。
执行函数
要执行函数,您应该使用 salt.function。考虑位于 /srv/salt/orch/data.sls 的文件 data.sls。现在,在该文件中添加以下更改。
data.sls
cmd.run: salt.function: - tgt: '*' - arg: - rm -rf /tmp/data
以下命令用于执行 Salt 函数。
root@saltmaster:/home/vagrant# salt-run state.orchestrate orch.data
它将产生以下输出 −
saltmaster.local_master: ---------- ID: cmd.run Function: salt.function Result: True Comment: Function ran successfully. Function cmd.run ran on minion1, minion2. Started: 12:14:54.791635 Duration: 234.615 ms Changes: minion1: minion2: Summary for saltmaster.local_master ------------ Succeeded: 1 (changed = 1) Failed: 0 ------------ Total states run: 1 Total run time: 234.615 ms