最近,我正在向它的文档学习 salt。但是,我对执行模块和状态模块很困惑。为什么有两种类型的模块?为什么他们不能统一?如果我们只有一种类型的模块,可以在命令行和 sls 文件中使用,不是更简单更好吗?
简而言之:
- 执行模块:执行任务
- 状态模块:尝试达到某种状态/配置。
执行模块:
它们被设计用来在 Minion 上执行任务。例如:mysql.query
将查询指定的数据库。执行模块不检查是否需要查询数据库。它只是执行它的任务。
查看完整的模块列表,您会发现它们只会为您执行任务。https://docs.saltstack.com/en/latest/ref/modules/all/index.html
状态模块:
它称为状态模块。
states 模块也是一个模块。但这是一件特别的事。使用 states 模块,您可以为 Minions 创建状态( /srv/salt 下的 sls 文件)。
例如,您可以创建一个状态来确保 Minion 具有为 www.example.com 配置的 Web 服务器。
创建状态后,您可以将其应用到 states 模块:salt <minion> state.apply example_webserver
The example_webserver
state 指定 Minion 需要拥有什么。如果 Minion 已经处于正确状态,则它不会执行任何操作。如果 Minion 未处于正确的状态,它将尝试到达那里。
状态模块可以在这里找到:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.module.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)