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"

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

  • minute − 一小时内的分钟,介于'0'和'59'之间。

  • hour − 小时,以 24 小时制指定。

  • day_of_month −月份中的日期,介于 1 到 31 之间。例如,每月的 10 号是 10。

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

  • day_of_week − 以数字形式指定(0-7),或以星期名称指定(例如 Sun)。

  • user − 运行命令的用户帐户。

  • 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 的一个核心概念。