SaltStack - 将 Cron 与 Salt 结合使用


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

什么是克朗?

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”之间。

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

  • day_of_month - 一个月中的第几天,介于 1 和 31 之间。例如,每个月的10号是 10。

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

  • day_of_week - 一周中的某一天以数字(0-7)或日期名称(例如 Sun)指定。

  • user - 命令运行所在的用户帐户。

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

此处,如果未分配任何内容,则用 * 替换。

盐调用者(盐调用)

Salt提供了一个CLI(命令行界面),salt-call可以在本地minion系统本身中运行模块,而不是使用salt命令从主服务器运行。salt 调用 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的核心概念。