runners是由salt-run命令调用的,一般我用的到就是jobs和manage模块。源代码是在

./site-packages/salt/runners/下的。当然我们可以自定义runners。


先谈谈jobs模块。包含active、lookup_jid、list_job、list_jobs、print_job五种方法。

salt-run jobs.active ->返回正在执行状态任务的信息,是个字典。

salt-run jobs.lookup_jid jid ->查看已经执行完成的任务对应jid返回的结果

salt-run jobs.list_job jid -> 查看对应jid的信息:方法、参数、包含minion、任务开始时间等。

salt-run jobs.list_jobs -> 查看所有任务缓存的信息

salt-run jobs.print_job jid -> 类似list_job

下面给个截图:

runners学习_第1张图片


manage模块。一般用到的方法是status、down、up、versions等。

salt-run manage.status    ->输出minions的状态(up和down的状态)

salt-run manage.up      ->输出处于运行状态的minions

salt-run manage.down    ->输出处于停止状态的minions

salt-run manage.versions -> 输出minions的版本信息

我一般用这个模块来判断哪些机器有问题,哪些minions需要升级版本。

下面给个截图。

runners学习_第2张图片


现在说说自定义runners。

首先需要修改下master配置文件,增加runners的查找路径。

runner_dirs: ['/srv/salt/_runners']

重启master


下面程序用于显示所有的minion id信息,文件名是kevin.py

#!/usr/bin/env python
# coding:utf-8

import salt

def get_minions():
        opts = salt.config.client_config('/opt/app/salt/etc/master')
        key = salt.key.KeyCLI(opts)
        ids = key.key.list_keys()
        for status,values in ids.items():
                for id in values:
                        print id


调用这个runner获取信息

salt-run kevin.get_minions
192.168.110.132
192.168.110.133
192.168.79.47


runners笔记先写到这里,便于以后使用。