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的更多相关文章

  1. Func系列2:常用模块及API

    简介 Func提供了非常丰富的功能模块,包括CommandModule(执行命令).CopyFileModule(拷贝文件).CPUModule(CPU信息).DiskModule(磁盘信息).Fil ...

  2. Saltstack常用模块及API

    Saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能.常用工具支持等,更多模块信息可以查看官网模块介绍.也可以通过sys模块列出当前版本支持的模块. salt '*' sys.list_ ...

  3. Saltstack系列3:Saltstack常用模块及API

    说明 salt '*' sys.list_modules #列出当前版本支持的模块 API原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现 ...

  4. Ansible常用模块及API

    Ansible安装 安装EPEL作为安装Ansible的yum源(CentOS6.4): rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel ...

  5. salt常用模块及API

    saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能,常用工具支持等,更多模块信息见官网模块介绍:https://docs.saltstack.com/en/latest/ref/mod ...

  6. Saltstack 常用的模块及API

    Saltstack提供了非常丰富的功能模块,设计操作系统的基础功能,常用工具支持等, 官网模块介绍 http://docs.saltstack.com/ref/modules/all/index.ht ...

  7. ansible api常用模块与参数

    ###ansibleAPI 常用模块 用于读取yaml,json格式的文件 from ansible.parsing.dataloader import DataLoader #用于管理变量的类,包括 ...

  8. ansible API 常用模块

    常用模块 用于读取yaml,json格式的文件 from ansible.parsing.dataloader import DataLoader #用于管理变量的类,包括主机,组,扩展等变量 fro ...

  9. Python学习笔记-常用模块

    1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...

随机推荐

  1. if与while相互嵌套,菱形*的实现.py

    """    *           * *         * * *       * * * *     * * * * *     * * * *       * ...

  2. Zabbix实战-简易教程--技巧(本地化)

    1.zabbix的logo图标替换(不建议修改) 3.0版本以下: 1.修改/usr/share/zabbix/include/page_header.php 2.修改/usr/share/zabbi ...

  3. Java想要学到精通,这几点一定要掌握

    时代更新换代速度如此之快,尤其是深处互联网行业的java程序员,技术更需要不断更新,只有及时充电,才能不被市场淘汰.千锋Java培训老师今天为大家分享Java程序员学习的6个小技巧. 1.书籍永远是知 ...

  4. .net整理

    CLR via C# 1 关于CLI,CTS,CLS,CIL,.Net Framework,CLR,FCL图 CLI:Common Language Infrastructure,是公共语言架构: C ...

  5. 在Java Web项目中添加定时任务

    在Java Web程序中加入定时任务,这里介绍两种方式:1.使用监听器注入:2.使用Spring注解@Scheduled注入. 推荐使用第二种形式. 一.使用监听器注入 ①:创建监听器类: impor ...

  6. 初入python 用户输入,if,(while 循环)

    python 基础 编译型: 一次性将所有程序编译成二进制文件. 缺点:开发效率低,不能跨平台 优点:运行速度快. :c ,c++语言 等等.... 解释行:当程序执行时,一行一行的解释. 优点:开发 ...

  7. 2039: [2009国家集训队]employ人员雇佣

    任意门 Description 作为一个富有经营头脑的富翁,小L决定从本国最优秀的经理中雇佣一些来经营自己的公司.这些经理相互之间合作有一个贡献指数,(我们用Ei,j表示i经理对j经理的了解程度),即 ...

  8. 复选框之checked属性

    今天无意中看到同事在学习复选框里面的checked属性的应用,当时看了一下,感觉熟悉而又陌生,发现checked属性其实还是挺奇怪的,感觉这里很有必要做一下笔记: 1.html中的checked属性. ...

  9. [数据预处理]-中心化 缩放 KNN(一)

    据预处理是总称,涵盖了数据分析师使用它将数据转处理成想要的数据的一系列操作.例如,对某个网站进行分析的时候,可能会去掉 html 标签,空格,缩进以及提取相关关键字.分析空间数据的时候,一般会把带单位 ...

  10. Android开发之漫漫长途 XII——Fragment详解

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...