Saltstack | modules(五)
一、modules介绍
这里简单介绍下modules吧,modules是salt用于远程执行的核心,可以用来安装软件、重启服务、远程运行命令、传输文件等,系统本身自带了蛮多的 modules,当然你也可以自定义modules
二、modules使用
这里选取几个系统自带的modules测试下
# salt 'SquidMonitor-SZ' network.interfacesSquidMonitor-SZ: ---------- eth0: ---------- hwaddr: 6c:f0:49:26:92:98
# salt 'SquidMonitor-SZ' disk.usage SquidMonitor-SZ: ---------- /: ---------- 1K-blocks: 221744836 available: 203275748 capacity: 4% ...
三、自定义modules
salt在安装后默认会自带很多modules,当然如果你有特殊需求的话也可以自定义modules
在master创建_modules目录
# mkdir /srv/salt/_modules && cd /srv/salt/_modules
然后在该目录写个python脚本,这里写的是采集每台squid的日志量
#!/usr/bin/python# -*- coding: utf-8 -*-# Filename: suse.pyimport commandsdef client_info(): result = {} result['access.log.0_lines'] = commands.getoutput("wc -l /data/squid/logs/access.log.0 | awk '{print $1}'") result['access.log.1_lines'] = commands.getoutput("wc -l /data/squid/logs/access.log.1 | awk '{print $1}'") return result
同步刷新自定义modules到minions
# salt 'SquidMonitor-SZ' saltutil.sync_all# salt 'SquidMonitor-SZ' saltutil.refresh_modules
上述完成后就可以测试了^^
# salt 'SquidMonitor-SZ' suse.client_infoSquidMonitor-SZ:---------- access.log.0_lines: 5223883 access.log.1_lines: 1652243 collector.0_cursor: 5223883 collector.1_cursor: 1751589
四、使用module注意事项
master端定义modules默认是存放在/srv/salt/_modules/,需手动创建该目录,编写完modules之后运行saltutil.sync_all进行同步
另外有些时候同步完module,会出现无法采集到有些minion的自定义信息,这个时候可以运行saltutil.refresh_modules刷新下modules,当然为了保险起见,同步完都刷新下最好