Saltstack | runners(七)
一、runners介绍
runners有点类似于modules,区别在于modules是给minions远程执行的,runners是在master上执行的,而且runners调用的是salt-run命令
使用方法也跟modules无太大区别,创建runners定义函数,调用salt-run执行,官方自带了几个runners,当然你也可以自己写
二、runners使用
例如使用官方自带的runners给大家演示下
# salt-run manage.statusdown:up:    - BJ-SQUIDAPP-50    - BJ-SQUIDAPP-52    ...# salt-run jobs.active'20130815101458820238':  Arguments:  - ping www.baidu.com  Function: cmd.run  Returned: []  Running: []  Target: '*'  Target-type: glob  User: root三、自定义runners
1、默认自定义runners是没有开启的,这个需要去master配置文件开启并重启服务
# vim /etc/salt/master#runner_dirs: []runner_dirs: ['/srv/salt/_runners']# /etc/init.d/salt-master restartStopping salt-master daemon:                               [确定]Starting salt-master daemon:                               [确定]2、创建相关目录与文件
# mkdir /srv/salt/_runners && cd /srv/salt/_runners# touch proxy.py3、编写python脚本,例如写一个显示所有在线的minions
#!/usr/bin/python# _*_ coding=utf-8 _*_# Import salt modulesimport salt.clientdef up():    '''     Print a list of all of the minions that are up    '''    client = salt.client.LocalClient(__opts__['conf_file'])    minions = client.cmd('*', 'test.ping', timeout=1)    for minion in sorted(minions):        print minion4、测试
# salt-run proxy.upBJ-SQUIDAPP-50BJ-SQUIDAPP-52...备注
你可以去salt的github上找一些比较好的例子 runners