SaltStack - 作业管理


Salt具有与大量系统进行高速通信的能力。这种方法有助于 Salt 打造强大的多任务系统。Salt 可以在多个系统上运行作业,因此 Salt 使用作业管理技术来管理在所有系统上运行的每个作业。本章详细介绍了作业管理。

什么是职位 ID?

Salt有缓存目录,cachedir。其中,minions 维护的目录称为proc目录。它位于以下目录 /var/cache/salt/proc 中。

proc目录用于维护所有文件。执行这些文件时,它们会分配一个唯一的作业 ID。此作业 ID 有助于识别 Minion 上当前正在运行的作业并允许查找作业。

SALTUTIL 模块

Salt 引入了一个称为 Saltutil 作业管理进程的新模块。该模块包含管理作业的不同功能。这些函数用于管理 Minion 级别的作业。这些功能简要描述如下 -

  • running - 返回在 proc 目录中找到的所有正在运行的作业数据。

  • find_job - 根据作业 ID 返回有关某个作业的特定数据。

  • signal_job - 允许向给定的作业 id(jid) 发送信号。

  • term_job - 发送指定作业的终止信号。

  • Kill_job - 发送指定作业的终止信号。

工作跑者

作业运行器包含使查看数据更容易、更清晰的功能。它有不同的功能。让我们详细讨论每个函数。

主动功能

Active 函数用于识别哪些作业仍在运行,并检查哪些系统已完成作业以及哪些系统仍在等待。它是使用以下命令执行的,

salt-run jobs.active

LOOKUP_JID 函数

Lookup_jid 运行程序将显示当前查找作业的数据。这些作业是通过主配置中的keep_jobs选项进行配置的。它是使用以下命令执行的。

salt-run jobs.lookup_jid <job id number>

LIST_JOBS 函数

List_jobs 函数用于列出作业的作业数据。它由以下命令表示 -

salt-run jobs.list_jobs

作业调度

调度系统公开了 minions 上的任何执行函数或 master 上的任何 runner 的执行情况。

它是通过以下方法执行的 -

  • Schedule - master 或 minion配置文件中的计划选项。

  • Minion Pillar 数据- 它使用 saltutil.refresh_pillar 命令刷新 Minion Pillar 数据。

  • 调度状态或调度模块。

盐状态在 Minion 上执行。您可以传递位置参数并在配置文件中提供命名参数的YAML 字典,如下所示。

schedule:
   job1:
      function: saltstate.sls
      seconds: 3600
      args:
         - httpd
      kwargs:
         test: True

在这里,job1将使用指定的参数执行函数saltstate.sls ,每小时执行一次httpd 。test : True是saltstate.sls中定义的httpd命令的附加参数。