一、引言:

  在日常的运维工作中经常会遇到需要定时定点启动任务,首先会考虑到crontab,但是通过crontab的话需要每台机器下进行设置,这样统一管理的话比较复杂;通过查百度和google发现saltstack有scheduler的功能。

二、Pillar Scheduler:

  Salt本身提供多方面的Scheduler的配置,分别有3种配置方式:

  1、从Master配置端;

  2、Master Pillar端;

  3、Minion配置端或者Minion.d下配置文件下配置

  在这里介绍的是pillar的方式;官方文档:https://docs.saltstack.com/en/latest/topics/jobs/index.html

  首先创建一个/srv/salt/pillar/top.sls

[root@test pillar]# cat /srv/salt/pillar/top.sls
base:
"*":
- schedule

  然后创建/srv/salt/pillar/schedule.sls

[root@test tmp]# cat /srv/salt/pillar/schedule.sls
schedule:
testcase:
function: cmd.run
seconds: 10
args:
- 'date >> /tmp/test.cmd.log'
kwargs:
stateful: False

备注:这个调度任务的意思是:每隔10秒在/tmp目录下的test.cmd.log文件中记录一条时间。

  创建完文件之后执行下面的命令把pillar的修改刷到minion端。

salt "*" saltutil.refresh_pillar

  想查看minion端都有哪些计划任务可以用:

[root@test pillar]# salt "*" pillar.get schedule
192.168.1.88:
----------
__mine_interval:
----------
function:
mine.update
jid_include:
True
maxrunning:
2
minutes:
60
name:
__mine_interval
testcase:
----------
args:
- date >> /tmp/test.cmd.log
function:
cmd.run
jid_include:
True
kwargs:
----------
stateful:
False
maxrunning:
1
name:
testcase
seconds:
10

或者:

[root@test pillar]# salt "*" config.option schedule
192.168.1.88:
----------
__mine_interval:
----------
function:
mine.update
jid_include:
True
maxrunning:
2
minutes:
60
name:
__mine_interval

  config.option的方式只能出mine.update的。

三、运行结果:

[root@test pillar]# tail -f /tmp/test.cmd.log
Tue Mar 21 14:26:58 CST 2017
Tue Mar 21 14:27:08 CST 2017
Tue Mar 21 14:27:18 CST 2017
Tue Mar 21 14:27:28 CST 2017
Tue Mar 21 14:27:38 CST 2017
Tue Mar 21 14:27:48 CST 2017
Tue Mar 21 14:27:58 CST 2017
Tue Mar 21 14:28:08 CST 2017
Tue Mar 21 14:28:18 CST 2017
Tue Mar 21 14:28:28 CST 2017

  

Saltstack之Scheduler的更多相关文章

  1. AndroidStudio3.0无法打开Android Device Monitor的解决办法(An error has occurred on Android Device Monitor)

    ---恢复内容开始--- 打开monitor时出现 An error has occurred. See the log file... ------------------------------- ...

  2. 基于saltstack自动化部署高可用kubernetes集群

    SaltStack自动化部署HA-Kubernetes 本项目在GitHub上,会不定期更新,大家也可以提交ISSUE,地址为:https://github.com/skymyyang/salt-k8 ...

  3. SaltStack远程执行Windows job程序(黑窗口)填坑经过

    近期接到领导通知,要将公司内的所有Windows服务添加到自动发布系统中,由于这种服务很多,节点分布散乱,每次都是由开发主管手动替换(虽然他们自己开发了自动打包替换工具,但仍需要一台一台登陆到服务器上 ...

  4. 从scheduler is shutted down看程序员的英文水平

    我有个windows服务程序,今天重点在测试系统逻辑.部署后,在看系统日志时,不经意看到一行:scheduler is shutted down. 2016-12-29 09:40:24.175 {& ...

  5. Spring 4 + Quartz 2.2.1 Scheduler Integration Example

    In this post we will see how to schedule Jobs using Quartz Scheduler with Spring. Spring provides co ...

  6. VMware中CPU分配不合理以及License限制引起的SQL Scheduler不能用于查询处理

    有一台SQL Server(SQL Server 2014 标准版)服务器中的scheduler_count与cpu_count不一致,如下截图所示: SELECT  cpu_count ,      ...

  7. saltstack初探

    salt-key -y -d linux-node1 #删除linux-node1节点的认证 salt -G 'cpuarch:x86_64' grains.item num_cpus >> ...

  8. saltstack命令执行过程

    saltstack命令执行过程 具体步骤如下 Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc salt ...

  9. Windows Task Scheduler Fails With Error Code 2147943785

    Problem: Windows Task Scheduler Fails With Error Code 2147943785 Solution: This is usually due to a ...

随机推荐

  1. IIS PHP

    Name:PHP_FCGI_MAX_REQUESTS Value:10000

  2. 骚气男孩saochi boy 唐砖 插曲

    试听下载链接:https://pan.baidu.com/s/1ObB9FYbgzegcE25io6zCEg

  3. BZOJ.3165.[HEOI2013]Segment(李超线段树)

    BZOJ 洛谷 对于线段,依旧是存斜率即可. 表示精度误差一点都不需要管啊/托腮 就我一个人看成了mod(10^9+1)吗.. //4248kb 892ms #include <cstdio&g ...

  4. Axis2部署后服务器端出现异常信息

    客户端可以正常调用Web Service,但服务端控制台报出如下异常:2013-09-05 09:49:12,965:[http-8080-2] at org.apache.axis2.dataret ...

  5. java 实验 三 (2)(3)

    (2)编写一个Java程序,声明一个数组,各元素如:{12, 23, 456, 222, 768, 93245}计算出所有元素的和以及所有元素的平均值:SumArray.java(3)编写一个Java ...

  6. 2011 ACM 0和1思想

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2011 题意:求1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...前n项的和. 思路 ...

  7. SW加载标准库时出现failed to create Toolboxlibrary object怎么办?

    友情提示:Windows+r打开  输入smd 注意操作前要关闭solidworks, 重新打开软件. 下面就可以找到很多标准件了.

  8. python反转列表的三种方式

    1.内建函数reversed() li =[1, 2, 3, 4, 5, 6] a = list(reversed(li)) print (a) 注意:reversed()函数返回的是一个迭代器,而不 ...

  9. 使用git(window)在github上存项目教程

    要托管到github,那你就应该要有一个属于你自己的github帐号,所以你应该先到github.com注册 打开浏览器 在地址栏输入地址:github.com 填写用户名.邮箱.密码 点击Sign ...

  10. python正则表达式(四)

    re模块的高级用法 search 需求:匹配出文章阅读的次数 #coding=utf-8 import re ret = re.search(r"\d+", "阅读次数为 ...