• Func常用模块及API


    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 /dev/mapper/centos-root    459828  2131    457697   1% / devtmpfs                     3861     0      3861   0% /dev tmpfs                        3871     0      3871   0% /dev/shm tmpfs                        3871    57      3815   2% /run tmpfs                        3871     0      3871   0% /sys/fs/cgroup /dev/sda1                     494   184       311  38% /boot tmpfs                         775     0       775   0% /run/user/0 ',

      ''])

    注: [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 Mem:           7741         700        6356          56         684        6669 Swap:         16383           0       16383 ', '']}

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

  • 相关阅读:
    大三寒假学习 spark学习 Scala面向对编程 类(构造器)
    大三寒假学习 spark学习 Scala面向对编程 对象(apply方法与update方法)
    大三寒假学习 spark学习 Scala面向对编程 对象(单例对象和伴生对象)
    大三寒假学习 spark学习 Scala面向对象编程 类(编译和执行)
    大三寒假学习 spark学习 函数定义 函数的类型和值
    大三寒假学习 spark学习 Scala面向对编程 特质
    ORACLE使用函数对二进制、十进制、十六进制数互相转换
    实例讲解数据库范式
    什么是数据冗余
    存储过程中使用事务
  • 原文地址:https://www.cnblogs.com/Dev0ps/p/8178207.html
Copyright © 2020-2023  润新知