salt-job管理

在SaltStack里执行任何一个操作都会在master上产生一个jid号,minion端会在cache目录下的proc目录创建一个以jid为名称的文件,这个文件里内容就是此次操作的记录,当操作完成后自动删除。

salt踢狗salt-run和moudle两种方式来管理JOB

1.通过salt-run来管理job

[root@node2 redis-4.0.10]# salt-run -d |grep jobs
'jobs.active:'
    Return a report on all actively running jobs from a job id centric
        salt-run jobs.active
'jobs.list_job:'
        salt-run jobs.list_job 20130916125524463507
'jobs.list_jobs:'
    List all detectable jobs and associated functions
        salt-run jobs.list_jobs
'jobs.lookup_jid:'
        salt-run jobs.lookup_jid 20130916125524463507
        salt-run jobs.lookup_jid 20130916125524463507 outputter=highstate
'jobs.print_job:'
        salt-run jobs.print_job 20130916125524463507

2.可以看到此次的任务号。

[root@node2 redis-4.0.10]# salt 'node1' cmd.run 'sleep 100;whoami'
^CExiting on Ctrl-C
This job's jid is:
20181227213754124155
The minions may not have all finished running and any remaining minions will return upon completion. To look up the return data for this job later run:
salt-run jobs.lookup_jid 20181227213754124155

3.查看这个job的运行结果

[root@node2 redis-4.0.10]# salt-run jobs.lookup_jid 20181227213754124155
node1:
root

4.查看这个JOB的详细记录

[root@node2 redis-4.0.10]#  salt-run jobs.list_job 20181227213754124155
Arguments:
    - sleep 100;whoami
Function:
    cmd.run
Minions:
    - node1
Result:
    ----------
    node1:
        ----------
        return:
            root
StartTime:
    2018, Dec 27 21:37:54.124155
Target:
    node1
Target-type:
    glob
User:
    root
jid:
    20181227213754124155

二。通过saltstack module 来管理JOB

2.1 查看module的用法

[root@node2 redis-4.0.10]# salt * sys.doc saltutil |grep job
'saltutil.find_cached_job:'
    Return the data for a specific cached job id
        salt '*' saltutil.find_cached_job <job id>
'saltutil.find_job:'
    Return the data for a specific job id
        salt '*' saltutil.find_job <job id>
'saltutil.kill_job:'
    Sends a kill signal (SIGKILL 9) to the named salt job's process
        salt '*' saltutil.kill_job <job id>
        salt '*' saltutil.runner jobs.list_jobs
'saltutil.signal_job:'
    Sends a signal to the named salt job's process
        salt '*' saltutil.signal_job <job id> 15
'saltutil.term_job:'
    Sends a termination signal (SIGTERM 15) to the named salt job's process
        salt '*' saltutil.term_job <job id>

2.2. 接着用这个例子去测试

[root@node2 redis-4.0.10]# salt 'node1' cmd.run 'sleep 100;whoami'

[root@node2 redis-4.0.10]# salt 'node1' saltutil.find_job 20181227220403774993

可以直接kill这个job

[root@node2 redis-4.0.10]# salt 'node1' saltutil.kill_job 20181227220403774993
node1:
Signal 9 sent to job 20181227220656122140 at pid 143225

原文地址:https://www.cnblogs.com/zhaobin-diray/p/10187774.html