在SaltStack中使用Schedule(计划任务)

原创
2014/06/05 18:30
阅读数 5.1K

SaltStack可以很容易的实现批量计划任务的创建啊和管理

官方文档: http://docs.saltstack.com/en/latest/topics/jobs/index.html

按照官方文档的描述,计划任务有3种配置方式,分别是: 

  1. 在master配置文件中配置

  2. 在minion配置文件中配置

  3. 在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值会导致执行失败


展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部