执行模块和状态模块之间的最大区别是什么

时间:2017-06-09 08:37:27

标签: salt salt-stack

最近,我正在从它的doc中学习盐。但是,我对执行模块和状态模块很困惑。为什么有两种类型的模块?为什么他们不能统一?如果我们只有一种类型的模块可以在命令行和sls文件中使用,那不是更简单,更好吗?

1 个答案:

答案 0 :(得分:11)

简而言之:

  • 执行模块:执行任务
  • 状态模块:尝试进入某种状态/配置。

执行模块:

它们旨在执行小兵的任务。例如:mysql.query将查询指定的数据库。执行模块不检查是否需要查询数据库。它只是执行它的任务 查看完整的模块列表,您将看到他们只会为您执行任务。 https://docs.saltstack.com/en/latest/ref/modules/all/index.html

州模块:

它被称为THE states模块 状态模块也是一个模块。但它是一个特殊的。使用状态模块,您可以为您的Minions创建状态(/ srv / salt下的sls文件) 例如,您可以创建一个状态,以确保Minion具有为www.example.com配置的Web服务器。

创建状态后,您可以将其应用于状态模块: salt <minion> state.apply example_webserver

example_webserver状态指定了Minion需要具备的内容。如果Minion已经处于正确的状态,它什么都不做。如果Minion未处于正确状态,它将尝试到达那里 州模块可以在这里找到:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.module.html