SaltStack job manager及schedule的定义使用
Salt Minions 在Salt的cachedir中维护着一个proc目录,这个目录下用以存放着已已经执行过的job>cachedir下的pro目录中,默认配置为/var/cache/salt/procjobs方法被定义在saltutil模块中,包含以下方法:
[*] running 返回proc目录下所有运行job的数据
[*]
find_job 返回指定job>
[*]
signal_job 允许向指定的job>
[*]
term_job 向指定的job>
[*]
kill_job 向指定的job>
jobs runner
jobs runner包含有很多函数
[*] active 返回当前系统上正在运行的jobs
# salt-run jobs.active lookup_jid执行后的结果数据发送回master,会被缓存在本地24小时,具体缓存时长可以通过keep_jobs参数控制,此时可以使用lookupjid 指定jid来查看该job当时执行结束后返回的结果
# salt-run jobs.lookup_jid <job id number> list_jobs 返回截止当前时间本地所缓存的所有job数据
# salt-run jobs.list_jobsSCHEDULING JOBS
schedule任务调度系统,可以将其理解为类似于linux系统上的crontab,可以执行任何的执行函数在minions上或者在master上任何的runner
开启schedule,只需要在master或者minion的配置文件中开启schedule参数,或者为minion定义pillar数据 指定maxrunning用来开启对某个任务最多执行次数的限制。该值默认为1。
对于在minion上执行state,可以通过位置参数或者按照yaml的字典格式提供命名参数,例如:
[*] STATES
schedule:
log-loadavg:
function: cmd.run
seconds: 3660
args:
- 'logger -t salt < /proc/loadavg'
kwargs:
stateful: False
shell: True
2.HIGHSTATES
schedule:
highstate:
function: state.highstate
minutes: 60
在minion的配置文件中或者pillar数据中,设置highstate,每60分钟运行一次,时间声明可以指定seconds, minutes, hours, days
3.RUNNERS
schedule:
overstate:
function: state.over
seconds: 35
minutes: 30
hours: 3
配置在master的配置文件中
4.SCHEDULER WITH RETURNER
schedule:
uptime:
function: status.uptime
seconds: 60
returner: mysql
meminfo:
function: status.meminfo
minutes: 5
returner: mysql
[*] schedule也可以将minon收集的数据通过returner收集到mysql数据库中.
需要注意的是:当你通过pillar首次或者新增加schedule的定义时,记得要将pillar数据同步至对应minion上去。
# salt <tgt> saltutil.refresh_pillar
页:
[1]