SaltStack - 编排

一般来说,编排是一种系统的自动协调和安排。Orchestrate 运行器用于在 SaltStack 中执行编排。

Orchestrate 运行器

Orchestrate 运行器提供 OverState(以前的系统)的所有功能。它最初被称为 state.sls 运行器。此编排运行器用于将 Salt 状态系统推广到 Salt master 上下文。

state.slsstate.highstate 函数在每个 Salt minion 上执行,但 state.orchestrate 运行器在 master 上执行。state.orchestrate 运行器允许您将整个基础设施完全作为状态进行管理。让我们了解如何完成一个简单的执行过程。

简单执行

Orchestrate Runner 命令与 state.sls 函数相同,但您可以使用"salt-run"而不是 salt 来执行它。

假设您有一个位于 /srv/salt/orch/samples.slssample.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