Func常用模塊及API
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”查看被控端內存,如:
[root@controller ~]# 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‘,
‘‘])
註: [root@controller ~]# func "*" call command run "df -m" 單獨“*”為所有被控制端
[root@controller ~]# func "com*ute?" call command run "df -m" 這裏“*”代表任意多個字符。“?”代表單個任意字符
func "compute1;compute2" call command run "df -m" 多個目標主機使用分號分隔
- 常用模塊詳解
1、 執行命令模塊
(1) 功能
CommandModule實現linux遠程命令調用執行
(2) 命令行模式
[root@controller ~]# func "*" call command run "uname -a"
(3) API模式
[root@controller ~]# cat funcommand.py
#!/usr/bin/python
import func.overlord.client as func
client = func.Client("*")
print client.command.run("free -m")
[root@controller ~]# 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) 命令行模式
[root@controller ~]# func "*" copyfile -f /root/start.sh --remotepath /root/start.sh
c) API模式
[root@controller ~]# 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、 命令模式
[root@controller ~]# func "*" call cpu usage 10
3、 API模式
print client.cpu.usage(10)
- 磁盤信息模塊
1、 功能
DiskModule實現獲取遠程主機的磁盤分區信息,參數為分區標簽,如/data分區。
2、 命令模式
[root@controller ~]# 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、 命令行模式
[root@controller ~]# 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、 命令行模式
[root@controller ~]# 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、 命令行模式
[root@controller ~]# func "*" call mount list
3、 API模式
print client.mount.list()
- 系統進程管理模塊
1、 功能
ProcessModule實現遠程主機Linux進程管理。
2、 命令行模式
[root@controller ~]# func "*" call process info "aux"
3、 API模式
print client.process.info("aux")
- 系統服務管理模塊
4、 功能
servicesModule實現遠程主機Linux系統服務管理。
5、 命令行模式
[root@controller ~]# func "*" call service start snmpd
6、 API模式
print client.service.start("nginx")
Func常用模塊及API