SaltStack - 使用 Cron 与 Salt



Salt 可以与Cron应用程序一起使用。将这两个应用程序结合使用,为 Salt 自动化提供了极好的机会。虽然 Salt 提供了远程执行命令的选项,但 Cron 使其能够以预定的或自动的方式运行。在本章中,让我们学习如何将 Cron 和 Salt 结合使用。

什么是 Cron?

Cron 是 Linux 环境中非常有用的应用程序。它使您可以预设命令或脚本在特定的日期和时间运行。它还使您能够以固定的间隔运行应用程序,例如每天、每周或每月第一天。

系统启动时,Cron 会启动并检查/etc/crontab文件以获取配置详细信息。/etc/crontab 中的每一行都包含一个应用程序及其计划,如下所示。

15 * * * * root echo "This command runs at 15 minutes past every hour"
15 10 * * * root echo "This command is run daily at 10:15 am"

每一行都有以下七个入口点,它们以空格分隔,如下所示:

  • 分钟 - 小时内分钟,介于“0”和“59”之间。

  • 小时 - 小时,以 24 小时制指定。

  • 每月日期 - 月份中的日期,介于 1 和 31 之间。例如,每月的 10 日为 10。

  • 月份 - 指定的月份,以数字 (0-12) 或月份名称 (例如 May) 指定。

  • 每周日期 - 星期几,以数字 (0-7) 或星期几名称 (例如 Sun) 指定。

  • 用户 - 命令在其下运行的用户帐户。

  • cmd - 实际命令及其参数。

此处,* 替换为未分配任何内容的情况。

Salt Caller (salt-call)

Salt 提供了一个 CLI(命令行界面),salt-call,用于在本地 minion 系统本身而不是从主服务器使用 salt 命令运行模块。salt call CLI 支持 salt 命令支持的所有选项,但本地运行。

Salt Caller 最初设计用于支持调试,但现在可以用作独立应用程序。

salt-call test.ping

在 cron 中使用 salt-call

salt-call CLI 可用于使用 Cron 计划 salt 操作。例如,要每天午夜检查 minion 的状态,我们可以使用 salt-call 以及选项 – state.apply,如下所示。

/etc/crontab

PATH = /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin
0 0 * * * salt-call state.apply

这里,

  • state.apply 函数将检查 minion 的 salt 配置文件,并检查为 minion 定义的所有操作是否已正确配置。

  • 设置路径是一种良好的实践,因为有时 salt 命令可能在系统路径中不可用。

在下一章中,我们将学习远程执行,这是 Salt 的核心概念。

广告