SaltSack 管理命令

Job基本管理

Jid: job id的格式为%Y%m%d%H%M%S%f

master在下发指令消息时,会附带上产生的jid,minion在接收到指令开始执行时,会在本地的cachedir(默认是/var/cache/salt/minion)下的proc目录下产生该jid命名的文件,用于在执行过程中master查看当前任务执行的情况,在指令执行完毕蒋结果传送给master后,删除该临时文件。 master将minion的执行结果存放在本地/var/cache/salt/master/jobs目录中,默认缓存24小时(可以通过修改master配置文件中keepjobs选项调整)

在执行指令时添加 -v 选项可以显示命令执行的job id 如: 

[root@master reactor]# salt -v 'master' test.ping
Executing job with jid 20190926032244634277   #可以显示任务的Job id
-------------------------------------------

master:
    True


-------------------------------------------
Summary
-------------------------------------------
# of minions targeted: 1
# of minions returned: 1
# of minions that did not return: 0
# of minions with errors: 0
-------------------------------------------
[root@master reactor]#
View Code

 

saltutil模块中的job管理方法

通过salt  *  sys.doc saltutil |grep job

[root@master reactor]# salt master sys.doc saltutil | grep job
saltutil.clear_job_cache:
    Forcibly removes job cache folders and files on a minion.
        salt '*' saltutil.clear_job_cache hours=12
saltutil.find_cached_job:
    Return the data for a specific cached job id. Note this only works if
    cache_jobs has previously been set to True on the minion.
        salt '*' saltutil.find_cached_job <job id>
saltutil.find_job:
    Return the data for a specific job id that is currently running.
        The job id to search for and return data.
        salt '*' saltutil.find_job <job id>
    Note that the find_job function only returns job information when the job is still running. If
    the job is currently running, the output looks something like this:
        # salt my-minion saltutil.find_job 20160503150049487736
    If the job has already completed, the job cannot be found and therefore the function returns
        # salt my-minion saltutil.find_job 20160503150049487736
saltutil.kill_all_jobs:
    Sends a kill signal (SIGKILL 9) to all currently running jobs
        salt '*' saltutil.kill_all_jobs
saltutil.kill_job:
    Sends a kill signal (SIGKILL 9) to the named salt job's process
        salt '*' saltutil.kill_job <job id>
        salt master_minion 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_all_jobs:
    Sends a termination signal (SIGTERM 15) to all currently running jobs
        salt '*' saltutil.term_all_jobs
saltutil.term_job:
    Sends a termination signal (SIGTERM 15) to the named salt job's process
        salt '*' saltutil.term_job <job id>
View Code

1、salt '*' saltutil.running            #查看minion当前正在运行的jobs

2、salt '*' saltutil.find_job <jid>            #查看指定jid的job(minion正在运行的jobs)

3、salt '*' saltutil.signal_job <jid> <single>    #给指定的jid进程发送信号

4、salt '*' saltutil.term_job <jid>        #终止指定的jid进程(信号为15)

5、salt '*' saltutil.kill_job <jid>          #终止指定的jid进程(信号为9)

 

salt runner中的job管理方法

可以执行salt-run -d |grep jobs  查看到相关jobs命令

[root@master reactor]# 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.exit_success:
        salt-run jobs.exit_success 20160520145827701627
jobs.last_run:
    List all detectable jobs and associated functions
        salt-run jobs.last_run
        salt-run jobs.last_run target=nodename
        salt-run jobs.last_run function='cmd.run'
        salt-run jobs.last_run metadata="{'foo': 'bar'}"
jobs.list_job:
        salt-run jobs.list_job 20130916125524463507
        salt-run jobs.list_job 20130916125524463507 --out=pprint
jobs.list_jobs:
    List all detectable jobs and associated functions
        If more than one of the below options are used, only jobs which match
            salt-run jobs.list_jobs search_metadata='{"foo": "bar", "baz": "qux"}'
        Can be passed as a string or a list. Returns jobs which match the
            salt-run jobs.list_jobs search_function='test.*'
            salt-run jobs.list_jobs search_function='["test.*", "pkg.install"]'
                salt-run jobs.list_jobs search_function='test.*,pkg.install'
        Can be passed as a string or a list. Returns jobs which match the
            salt-run jobs.list_jobs search_target='*.mydomain.tld'
            salt-run jobs.list_jobs search_target='["db*", "myminion"]'
                salt-run jobs.list_jobs search_target='db*,myminion'
        module is not installed, this argument will be ignored). Returns jobs
        module is not installed, this argument will be ignored). Returns jobs
        salt-run jobs.list_jobs
        salt-run jobs.list_jobs search_function='test.*' search_target='localhost' search_metadata='{"bar": "foo"}'
        salt-run jobs.list_jobs start_time='2015, Mar 16 19:00' end_time='2015, Mar 18 22:00'
jobs.list_jobs_filter:
    List all detectable jobs and associated functions
        salt-run jobs.list_jobs_filter 50
        salt-run jobs.list_jobs_filter 100 filter_find_job=False
jobs.lookup_jid:
        salt-run jobs.lookup_jid 20130916125524463507
        salt-run jobs.lookup_jid 20130916125524463507 --out=highstate
jobs.print_job:
        salt-run jobs.print_job 20130916125524463507
    It can also be used to schedule jobs directly on the master, for example:
[root@master reactor]# 
View Code

1、salt-run jobs.active                 #查看所有minion当前正在运行的jobs(在所有minions上运行saltutil.running)

2、salt-run jobs.lookup_jid <jid>         #从master jobs cache中查询指定jid的运行结果

3、salt-run jobs.list_jobs                #列出当前master jobs cache中所有job

 

 

模块

自定义模块

 

1.创建模块目录

mkdir -p /srv/salt/base/_module # master节点创建模块文件目录

2.编写模块文件

vim /srv/salt/base/_module/ldisk.py

def df():
  return __salt__['cmd.run']('df -Th')

3.同步模块到minion

salt <minion> saltutil.sync_modules

4.运行模块

salt <minion> ldisk.df

 

 

查看salt所支持的所有模块组建

salt '*' sys.list_modules

查看salt客户端所支持的所有模块组建

salt 'minion' sys.list_modules

列出minions上所有有效的模块的帮助文档

salt -d | less

看指定module的所有function功能

salt 'minion' sys.list_functions cmd

查看指定module的使用方法和例子

salt 'minion' sys.doc cmd

 state模块使用说明

 查看配置管理state模块列表

salt 'minion'  sys.list_state_modules

 查看配置管理state列表指定模块所有方法列表

 salt 'minion' sys.list_state_functions svn

 查看配置管理state列表指定模块的详细用法

 salt 'minion'  sys.state_doc file

查看配置管理state列表指定模块的方法

salt sys.state_doc file.managed

 

saltutil模块中的job管理方法

 查看saltutil的使用方法

 salt 'minion' sys.list_functions saltutil

查看正在运行的jobs

salt 'minion' saltutil.running

查看指定的jid的job(mnion正在运行的jobs)

salt 'minion' saltutil.find_job  <jid>

给指定的jid发送信号

salt 'minion' saltutil.singnal_job <jid> <single>

给指定的jid发送term_job  (相当于系统的信号为15)

salt 'minion' saltutil.term_job <jid>

给指定的jid发送kill信号 (相当于系统的信号为9)

salt 'minion' saltutil.kill_job <jid>

 

state模块使用说明

查看配置管理state模块列表

salt 'minion'  sys.list_state_modules

查看配置管理state列表指定模块所有方法列表

salt 'minion' sys.list_state_functions svn

查看配置管理state列表指定模块的详细用法

salt 'minion'  sys.state_doc file

查看配置管理state列表指定模块的方法

salt sys.state_doc file.managed

 

minion状态管理

查看所有mininon状态

salt-run    manage.status

查看所有minion在线的minion

salt-run   manage.up

查看所有不在线的minion     可以同指定参数removekeys=True删除不在线的minion的key

salt-run manage.down

 

salt-call

salt-call -d  查看salt-call帮助信息

salt-call  该命令通常在minion端执行,minion可以执行可执行的模块,不是通过master下发的job

salt-call  [options]  <function>  [arguments]

salt-call test.ping

salt-call  cmd.run 'ls'

 

pillar

查看主机对应的所有pillar变量

salt 'minion' pillar.data

salt 'minion' pillar.items

查看主机对应多个pillar值

salt 'minion' pillar.item role appname

查看主机设置哪里pillar值

salt 'minion' pillar.ls

修改pillar值后刷新pillar值

salt 'minion' saltutil.refresh_pillar

查看pillar模块详细使用方法

salt 'minion' sys.doc pillar

 查看pillar的相关方法

 salt ‘minion’  sys.list_functions pillar

 """

shuke:

- pillar.data

- pillar.ext

- pillar.get

- pillar.item

- pillar.items

- pillar.raw

"""

 

grains

主动更新grains值

 salt 'minion' saltutil.refresh_grains

查看grains的用法

salt 'minion' sys.list_functions grains

查看grains的详细用法

 salt 'minion' sys.doc  grains

查看item项

salt 'minion' grains.ls

查看item值

salt  'minion' grains.items

查看具体的item项的值

salt 'minion'  grains.item  osmajorrelease

同步_grains目录下的python脚本到minion端

salt 'minion'   saltutil.sync_grains

如果_grains目录python脚本有变化,需要进行重载

salt 'minion'  sys.reload_modules

 

   

posted @ 2019-09-26 15:46  在半空頫視地球╰☆╮  阅读(319)  评论(0)    收藏  举报