SaltStack可以很容易的实现批量计划任务的创建啊和管理
官方文档: http://docs.saltstack.com/en/latest/topics/jobs/index.html
按照官方文档的描述,计划任务有3种配置方式,分别是:
在master配置文件中配置
在minion配置文件中配置
在pillar中配置
其中在配置文件中配置的方式,尤其是在minion端配置文件的方式估计大部分人都不太会用得到,所以这篇文章的目标主要集中在以pillar形式配置上
我的pillar文件夹是 /srv/pillar
首先创建一个 /srv/pillar/top.sls
base:
"*"
- schedule
然后创建 /srv/pillar/schedule.sls
schedule:
test-job:
function: cmd.run
seconds: 10
args:
- 'date >> /date.log'
这个调度任务的意思是 每隔10秒在 根目录的date.log文件中记录一条时间
创建完文件之后执行下面的命令把pillar的修改刷到minion端去
salt "*" saltutil.refresh_pillar
这样就完成了一个简单的计划任务创建,方便快捷!
想查看minion端都有哪些计划任务可以用
salt "*" pillar.get schedule
或者
salt "*" config.option schedule
PS: 官方文档有一个错,坑了我好几个小时
在 http://docs.saltstack.com/en/latest/topics/jobs/index.html#states 里面有一个
schedule:
log-loadavg:
function: cmd.run
seconds: 3660
args:
- 'logger -t salt < /proc/loadavg'
kwargs:
stateful: False
shell: True # 这里应该写shell的名字,比如"/bin/sh", 写bool值会导致执行失败