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