SaltStack 模块与状态

Kai*_*tje 4 python salt-stack

在搜索 SaltStack 的功能时,通常会出现一个状态和一个模块(例如,当搜索“saltstack user”时,会得到salt.states.usersalt.modules.user)。

阅读文档,我的印象是状态以某种方式调用模块或模块中的函数,以实现设置状态。但我不是很清楚。因此有以下问题:

SaltStack 中的模块和状态有什么区别?

小智 8

首先:

  • 模块直接执行。如果重复执行某个模块,它每次都会执行任务。例如,如果您重复执行 salt.modules.file.copy,它会在您每次执行时覆盖已经存在的文件。
  • 状态是描述目标系统特定部分的期望状态之后应该如何的东西。例如,如果你重复执行 salt.states.file.copy,它总是检查文件是否已经存在,如果文件不存在,它只复制文件。

如果您现在仔细查看状态的 Python 源代码,您会发现状态大部分时间都使用其关联模块。但是他们在执行之前会进行一些检查,并且只有在检查表明所需状态不存在时才会执行它们。

我希望,这会让区别更清楚一点