Saltstack之Scheduler

一、引言:

  在日常的运维工作中经常会遇到需要定时定点启动任务,首先会考虑到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

[[email protected] pillar]# cat /srv/salt/pillar/top.sls
base:
  "*":
    - schedule

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

[[email protected] 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端都有哪些计划任务可以用:

[[email protected] 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

或者:

[[email protected] 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的。

三、运行结果:

[[email protected] 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

  

时间: 2024-07-28 16:47:26

Saltstack之Scheduler的相关文章

基于SaltStack完成LVS的配置管理

之前由于工作需求,编写了SaltStack的 LVS远程执行模块 , LVS service状态管理模块 及 LVS server状态管理模块 ,并提交给了SaltStack官方 Loadblance(DR)及RealServer的配置管理.   前置阅读 LVS-DR模式配置详解 ,需要注意的是,LVS-DR方式工作在数据链路层,文中描述需要开启ip_forward,其实没有必要, 详情见 LVS DR模式原理剖析  环境说明 三台服务器用于LVS集群,其中主机名为lvs的担当的角色为load

Saltstack批量编译部署nginx(多模块)

最近一直在研究saltstack的同步文件和批量执行命令,随着架构的变大,批量部署的需求也变得明显起来了,我需要用一条命令就部署好nginx和tomcat,并且符合我所有的环境需求,可以直接投入生产环境使用,这就需要用到saltstack的批量安装部署功能了.这篇文章主要介绍nginx的批量部署,下篇讲解tomcat多实例的批量部署方法. 环境介绍: Centos 6.5 salt 2015.5.10 nginx 1.12.0 minion:test 1.修改master配置文件,修改后重启服务

kubernetes Master部署之Scheduler 以及 HA部署(5)

Kubernetes Scheduler作用是将Controller Manager将要新建的Pod按照特定的调度算法和调度策略绑定到集群中某个合适的Node上,并将绑定信息写入到etcd中. 一.部署Scheduler 下面生成kube-scheduler的kubeconfig文件,操作如下: cd /etc/kubernetes export KUBE_APISERVER="https://192.168.15.200:6443" 配置 cluster kubectl config

saltstack安装配置使用

背景:puppet 用ruby开发,saltstack用python语言开发的包 环境: 修改hostname和hosts文件, 关闭selinux,清空iptables 172.16.115.157  master.huangzp.com  ;hostname master 172.16.115.203  agent.huangzp.com  ;hostname agent 一.配置认证 1. 安装和启动Saltstack服务 master上: yum install  -y epel-rel

  Saltstack实战

一:saltstack简介 部署的工作,不能只用手来做了,我们需要用工具来完成,工具化和标准化是相辅相成的,工具化让线上运行的东西更标准 Saltstack是比较新的自动化工具,是python开发的,也提供了api,saltstack有三大功能,远程执行,配置管理和云管理,配置管理也可以叫做状态管理,运维三板斧,监控,执行,配置 Saltstack对不,Puppet是ruby写的不支持远程执行  ansible 也是python写的.Saltstack的官方网站就是saltstack.com 运

SaltStack 入门到精通 - 第一篇: 安装SaltStack

实际环境的设定: 系统环境: centos6 或centos5 实验机器: 192.168.1.100 软件需求: salt 套件,及其需求环境 实验目的: 成功安装salt,并实现salt主从间通讯 特殊设置: 其它目的: 安装SaltStack(下面简称为salt) epel安装:salt安装需要epel源支持,所以在安装salt前需要先安装epel包 # centos5 下载下面rpm  wget -O    epel.rpm https://dl.fedoraproject.org/pu

SaltStack 入门到精通 - 第七篇: Targeting

什么是Targeting? Targeting minions 是指那些minion会作为运行命令或是执行状态的目标.这些目标可以是一个主机名,系统信息,定义的分组,甚至是自定义的绑定的对象. 例如命令  salt web1 apache.signal restart 可以重启ID 为web1的minion的apache.当然也可以在top文件中使用web1来作为目标匹配的内容: base:   'web1':     - webserver Targing 有哪些匹配方式? Minion Id

使用saltstack集中部署zabbix服务

需求描述:使用saltstack在机器上部署zabbix服务. 思路:通过state sls实现. 安装zabbix的策略目录: 第一部分sls文件: 上面的策略是安装策略,目的是将安装包下载到minion,然后解压到安装目录. 第二部分是配置修改策略,修改后重启agentd服务. 模版配置文件一段信息,这个信息会被sls文件里的server变量替换掉 同步策略 salt '*' state.sls zabbix.config prod 这个会执行策略并安装zabbix. 是不是很简单啊 使用s

saltstack "ImportError: No module named salt.scripts"错误解决

一.问题描述 生产线上使用的自动化管理工具是saltstack,CentOS6.8 x64,python 2.6.6 ,正所谓不作不死,由于有些功能需要python2.7.x ,在升级好python2.7后,写了saltstack api 发现python2.7不好使,原理是python2.7下没有salt模块,因此pip install salt 即在python2.7下安装成功了salt模块,但是发现重启salt-master时报错.如下图: 生产线啊,这可不行,赶紧恢复吧.pip unin