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

[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

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM