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的更多相关文章
- Func系列2:常用模块及API
简介 Func提供了非常丰富的功能模块,包括CommandModule(执行命令).CopyFileModule(拷贝文件).CPUModule(CPU信息).DiskModule(磁盘信息).Fil ...
- Saltstack常用模块及API
Saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能.常用工具支持等,更多模块信息可以查看官网模块介绍.也可以通过sys模块列出当前版本支持的模块. salt '*' sys.list_ ...
- Saltstack系列3:Saltstack常用模块及API
说明 salt '*' sys.list_modules #列出当前版本支持的模块 API原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现 ...
- Ansible常用模块及API
Ansible安装 安装EPEL作为安装Ansible的yum源(CentOS6.4): rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel ...
- salt常用模块及API
saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能,常用工具支持等,更多模块信息见官网模块介绍:https://docs.saltstack.com/en/latest/ref/mod ...
- Saltstack 常用的模块及API
Saltstack提供了非常丰富的功能模块,设计操作系统的基础功能,常用工具支持等, 官网模块介绍 http://docs.saltstack.com/ref/modules/all/index.ht ...
- ansible api常用模块与参数
###ansibleAPI 常用模块 用于读取yaml,json格式的文件 from ansible.parsing.dataloader import DataLoader #用于管理变量的类,包括 ...
- ansible API 常用模块
常用模块 用于读取yaml,json格式的文件 from ansible.parsing.dataloader import DataLoader #用于管理变量的类,包括主机,组,扩展等变量 fro ...
- Python学习笔记-常用模块
1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...
随机推荐
- javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
前言 今天一个朋友让我帮他做一下tomcat的https配置,中间遇到了标题中这个错误,因此记录了一下过程,服务器.域名.证书.tomcat都已经准备好,就是需要配置一下即可,用的是阿里云的证书服务, ...
- Effective Java 第三版——21. 为后代设计接口
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Nginx+Tomcat实现负载均衡小demo
一.搭建Tomcat服务 下载安装JDK和Tomcat就不说了,太简单了.由于是win7单机环境测试,启动多个Tomcat服务可以通过在server.xml配置文件中修改端口实现.准备两个Tomcat ...
- html笔记4
<html> <body> <p>这是列表标签</p> <ul> <li>xxx</li> </ul> ...
- Free Pascal初次体验(有亮点哦)
感觉上Pascal语言写的非常有条理,和英语很像,应该是比较容易学,但是写起来真的是麻烦的要死,平时一行代码用C/C++可能就是几秒钟,用Pascal就要几分钟,Free Pascal感觉也不是很好用 ...
- Codeforces Round #451 (Div. 2)-898A. Rounding 898B.Proper Nutrition 898C.Phone Numbers(大佬容器套容器) 898D.Alarm Clock(超时了,待补坑)(贪心的思想)
A. Rounding time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- hdu_1036(取整和格式控制)
题意很简单,求平均时间 复习一下如何取整 (int) fl 是直接向下取整 == floor(fl) 向上取整 (int)(fl+1) == ceil(fl) 四舍五入 (int)(fl+0.5 ...
- CentOS6下安装git
Ubuntu12.04中默认没有安装Git.需要自行安装. 1. 安装Git 1.1 Ubuntu12.04下 可以使用apt-get方式安装,也可以下载源代码安装[1],我们这里使用apt-git安 ...
- 【C#】数据库脚本生成工具(二)
年C#研发的数据库文档生成工具,给之后的工作带来了便利.近日,又针对该工具,用WinForm开发了数据库脚本生成工具-DbExcelToSQL. 下面数据库文档生成工具效果图: 感兴趣的朋友可以看下[ ...
- Spring注解依赖注入的三种方式的优缺点以及优先选择
当我们在使用依赖注入的时候,通常有三种方式: 1.通过构造器来注入: 2.通过setter方法来注入: 3.通过filed变量来注入: 那么他们有什么区别吗?应该选择哪种方式更好? 三种方式的区别小结 ...