SaltStack - 工作管理

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

什么是作业ID?

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

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

SALTUTIL模块

Salt引入了一个新的被称为Saltutil作业管理过程的模块.该模块包含管理作业的不同功能.这些功能用于管理minion级别的作业.这些功能简要描述如下 :

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

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

  • signal_job : 允许给定的作业ID(jid)发送信号.

  • term_job : 发送指定作业的终止信号.

  • kill_job : 发送指定作业的终止信号.

作业运行器

作业运行器包含函数使查看数据更容易和更清洁.它有不同的功能.让我们详细讨论这些函数.

ACTIVE函数

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

作业调度

计划系统公开任务执行功能的执行功能或主人的任何跑步者.

执行通过以下方法 :

  • 时间表 :  master或minion config 文件中的schedule选项.

  • Minion支柱数据 : 它使用saltutil.refresh_pillar命令刷新minion柱数据.

  • 计划状态或计划模块.

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

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

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