• salt job管理和定时任务



    job management
    salt在job任务上的管理


    使用saltutil模块进行任务管理
    1、running 返回在 proc 目录下找到的所有正在运行的任务.
    示例:
    ll /var/cache/salt/minion/proc/
    -rw-r--r-- 1 root root 109 Aug 24 21:28 20170824212833356710

    2、find_job 返回指定任务ID的详细数据.
    salt '10.XX.X.19' saltutil.find_job 20170824213949924876

     1 10.88.4.19:
     2 ----------
     3 arg:
     4 - sleep 50;echo 1
     5 fun:
     6 cmd.run
     7 jid:
     8 20170824213949924876
     9 pid:
    10 32584
    11 ret:
    12 tgt:
    13 10.88.4.19
    14 tgt_type:
    15 glob
    16 user:
    17 root
    View Code

    3、signal_job 允许给指定任务ID发送一个信号.

    4、term_job 发送termination信号(SIGTERM, 15)给指定的任务.

    5、kill_job 发送kill信号(SIGKILL, 9)给指定的任务.

    这是一个非常好的问题,也是平时容易遇到的一个问题,关于调用脚本执行出现问题的时候
    需要kill的情况,父子进程彻底kill掉
    http://www.huangdc.com/66
    https://my.oschina.net/dchuang/blog/489664

    这些方法是提供了在minion级别管理任务的核心.



    使用salt-run进行任务管理,在master端执行命令

    salt-run jobs.active
    #查询当前所有在minion端正在执行的任务,相当于在所有机器上运行saltutil.running

    salt-run jobs.lookup_jid

    #由于master默认设置可以保留24小时的jobs的结果信息,所以可以查询到最近执行过的任务
    历史结果

    示例,当我们执行一个远程命令的时候,这时ctrl+c中断一下,会反馈以下信息:

    Exiting gracefully on Ctrl-c
    This job's jid is: 20170828224834520835
    The minions may not have all finished running and any remaining minions will return upon completion. To look up the return data for this job later, run the following command:

    salt-run jobs.lookup_jid 20170828224834520835

    提示我们使用salt-run命令查看返回数据情况。

    salt-run jobs.list_jobs
    #列出最近缓存的任务结果,很多都是系统内部通信的任务


    SaltStack通过Schedule实现批量的计划任务和管理,主要任务定期执行配置同步、执行命令等等。
    可以在master端和minion端配置schedule


    在master的pillar环境目录中设置定时任务
    示例:
    more top.sls
    abc:
    '10.64.1.127':
    - schedule #导入的模块名

    more schedule.sls
    schedule:
    log-loadavg: #任务名
    function: cmd.run #函数
    seconds: 3 #时间间隔
    args:
    - 'echo "1" >> /opt/a'
    kwargs:
    stateful: False
    shell: /bin/sh

    salt "10.XX.1.127" saltutil.refresh_pillar
    #将任务推送到minion

    #salt "10.XX.1.127" pillar.get schedule
    查询minion端有哪些定时任务

    如果要删除在pillar上设置的定时任务,则需要在删除定时任务的配置并
    使用saltutil.refresh_pillar更新,收集到的信息可以放入数据库里面。


    minion端系统定时任务示例:


    在/etc/salt/minion.d/目录下游一个_schedule.conf文件,这个是minion端默认配置的一个定时任务,用于更新mine信息,内容如下:

    schedule:

    __master_alive:
    function: status.master
    jid_include: true
    kwargs: {connected: true, master: 10.70.38.29}
    maxrunning: 1
    seconds: 30

    __mine_interval: {function: mine.update, jid_include: true, maxrunning: 2, minutes: 60}

    定时执行,周期性的将数据发送到saltmaster端。




  • 相关阅读:
    干货分享|安全测试起航之旅
    干货|宏巍软件之Java线程监控之旅
    大数据时代,业务运维驱动下的企业变革
    什么是业务运维,企业如何实现互联网+业务与IT的融合
    不谈业务运维的IT主管早晚被淘汰 这里是10条干货
    详解APM数据采样与端到端
    CTO对话:云端融合下的移动技术创新
    【1111元天天拿!充一送二玩真哒!】双十一任性活动
    引领手机流量营销 嘿嘿流量打造多场景专业服务
    “烧钱补贴”下的O2O该何去何从?
  • 原文地址:https://www.cnblogs.com/solitarywares/p/7425942.html
Copyright © 2020-2023  润新知