1. 程式人生 > >Func常用模塊及API

Func常用模塊及API

comm 卸載 body free 分號 over process 磁盤信息 div

Func常用模塊及API

  1. 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、 執行命令模塊

(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")

  1. CPU信息模塊

1、 功能

Cpumodule獲取遠程主機cpu信息,支持按時間(秒)采樣平均值,如下面示例的參數‘10’

2、 命令模式

[root@controller ~]# func "*" call cpu usage 10

3、 API模式

print client.cpu.usage(10)

  1. 磁盤信息模塊

1、 功能

DiskModule實現獲取遠程主機的磁盤分區信息,參數為分區標簽,如/data分區。

2、 命令模式

[root@controller ~]# func "*" call cpu usage 10

3、 API模式

print client.cpu.usage(10)

  1. 拷貝遠程文件模塊

1、 功能

GetFileModul實現拉取遠程Linux主機指定文件到主控端目錄,不支持命令行模式。

2、 API模式

client.local.getfile.get("/root/a.txt","/tmp/")

  1. 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. 系統硬件信息模塊

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()

  1. 系統Mount管理模塊

1、 功能

MountModule實現遠程主機Linux系統掛載、卸載分區管理。

2、 命令行模式

[root@controller ~]# func "*" call mount list

3、 API模式

print client.mount.list()

  1. 系統進程管理模塊

1、 功能

ProcessModule實現遠程主機Linux進程管理。

2、 命令行模式

[root@controller ~]# func "*" call process info "aux"

3、 API模式

print client.process.info("aux")

  1. 系統服務管理模塊

4、 功能

servicesModule實現遠程主機Linux系統服務管理。

5、 命令行模式

[root@controller ~]# func "*" call service start snmpd

6、 API模式

print client.service.start("nginx")

Func常用模塊及API