Func常用模块及API
Func供给了非常丰富的成果模块,包孕:
CommandModule(执行命令)
CopyFileModule(拷贝文件)
CpuModule(CPU信息)
DiskModule(磁盘信息)
FileTrackerModule(文件跟踪)
IPtablesModule(iptables打点)
MountModule(Mount挂载)
NagiosServerModule(Nagios打点)
NetWorkTest(网络测试)
ProcessModule(进程打点)
SysctlModule(sysctl打点)
SNMPModule(SNMP信息打点)等等:
更多模块见:https://fedoraproject.org/wiki/Infrastructure/Fedorahosted-retirement
命令行挪用模块格局:
Func<方针主机>call<Module_name(模块名)><method_name(要领名)><module_args(模块参数)>
例如运行“df –m”检察被控端内存,如:
[[email protected] ~]# func compute call command run "df -m"
(‘compute‘,
[0,
‘Filesystem 1M-blocks Used Available Use% Mounted on\n/dev/mapper/centos-root 459828 2131 457697 1% /\ndevtmpfs 3861 0 3861 0% /dev\ntmpfs 3871 0 3871 0% /dev/shm\ntmpfs 3871 57 3815 2% /run\ntmpfs 3871 0 3871 0% /sys/fs/cgroup\n/dev/sda1 494 184 311 38% /boot\ntmpfs 775 0 775 0% /run/user/0\n‘,
‘‘])
注: [[email protected] ~]# func "*" call command run "df -m" 单独“*”为所有被控制端
[[email protected] ~]# func "com*ute?" call command run "df -m" 这里“*”代表任意多个字符。“?”代表单个任意字符
func "compute1;compute2" call command run "df -m" 多个方针主机使用分号分隔断绝分手
常用模块详解
1、 执行命令模块
(1) 成果
CommandModule实现linux长途命令挪用执行
(2) 命令行模式
[[email protected] ~]# func "*" call command run "uname -a"
(3) API模式
[[email protected] ~]# cat funcommand.py
#!/usr/bin/python
import func.overlord.client as func
client = func.Client("*")
print client.command.run("free -m")
[[email protected] ~]# python funcommand.py
{‘compute‘: [0, ‘ total used free shared buff/cache available\nMem: 7741 700 6356 56 684 6669\nSwap: 16383 0 16383\n‘, ‘‘]}
2、 文件拷贝模块
a) 成果
CopyFileModule实现主控端向方针主机拷贝文件,类似scp的成果
b) 命令行模式
[[email protected] ~]# func "*" copyfile -f /root/start.sh --remotepath /root/start.sh
c) API模式
[[email protected] ~]# cat funccopyfile.py
#!/usr/bin/python
import func.overlord.client as func
client = func.Client("*")
client.local.copyfile.send("/root/start.sh","/tmp/start.sh")
CPU信息模块
1、 成果
Cpumodule获取长途主机cpu信息,,撑持定时间(秒)采样平均值,如下面示例的参数‘10’
2、 命令模式
[[email protected] ~]# func "*" call cpu usage 10
3、 API模式
print client.cpu.usage(10)
磁盘信息模块
1、 成果
DiskModule实现获取长途主机的磁盘分区信息,参数为分区标签,如/data分区。
2、 命令模式
[[email protected] ~]# func "*" call cpu usage 10
3、 API模式
print client.cpu.usage(10)
拷贝长途文件模块
1、 成果
GetFileModul实现拉取长途Linux主机指定文件到主控端目录,不撑持命令行模式。
2、 API模式
client.local.getfile.get("/root/a.txt","/tmp/")
Iptables打点模块
1、 成果
IPtables实现长途主机iptables配置。
2、 命令行模式
[[email protected] ~]# func "*" call iptables.port drop_to 53 192.168.128.0/24 udp src
3、 API模式
client.iptables.port.drop_to(8080,"192.168.128.55","tcp","dst")
系统硬件信息模块
1、 成果
HardwareModule返回长途主机系统硬件信息。
2、 命令行模式
[[email protected] ~]# func "*" call iptables.port drop_to 53 192.168.128.0/24 udp src
3、 API模式
print client.hardware.info(with_devices=True)
print client.hardware.hal_info()
系统Mount打点模块
1、 成果
MountModule实现长途主机Linux系统挂载、卸载分区打点。
2、 命令行模式
[[email protected] ~]# func "*" call mount list
3、 API模式
print client.mount.list()
系统进程打点模块
1、 成果
ProcessModule实现长途主机Linux进程打点。
2、 命令行模式
[[email protected] ~]# func "*" call process info "aux"
3、 API模式
print client.process.info("aux")
系统处事打点模块
4、 成果
servicesModule实现长途主机Linux系统处事打点。
5、 命令行模式
[[email protected] ~]# func "*" call service start snmpd
6、 API模式
print client.service.start("nginx")