关于Func非Python API实现远程调用,目的是给第三方工具提供调用及返回接口。Func使用func-transmit命令来实现,支持YAML 1.0 与 JSON,使用上非常简单。例子如下:
YAML格式
#vi run.yaml
JSON格式
#vi run.json
参数说明
clients 目标主机,"*"代码所有被控主机。
async 是否异步,是一个bool值,True为使用异步,False则不使用。
nforks 启用的线程数,用数字表示。
module 模块名称,如command。
method 方法名称,如command模块下的run方法。
parameters 参数,如"/usr/bin/tail -100 /var/log/messages"。
运行结果
func-transmit --json < run.json
{"SERVER-005": "Hello World www.tianya.cn", "SERVER-004": "Hello World www.tianya.cn", "SERVER-001": "Hello World www.tianya.cn", "SERVER-003": "Hello World www.tianya.cn", "SERVER-002": "Hello World www.tianya.cn"}
func-transmit --yaml < run.yaml
---
SERVER-001: Hello World www.tianya.cn
SERVER-002: Hello World www.tianya.cn
SERVER-003: Hello World www.tianya.cn
SERVER-004: Hello World www.tianya.cn
SERVER-005: Hello World www.tianya.cn
从运行结果可以看出,根据不同的接口格式能返回相应的结果。此时输出的YAML与JSON格式能够被绝大多数的语言识别,接下来就可以做一些后续的处理了。
YAML格式
#vi run.yaml
JSON格式
#vi run.json
参数说明
clients 目标主机,"*"代码所有被控主机。
async 是否异步,是一个bool值,True为使用异步,False则不使用。
nforks 启用的线程数,用数字表示。
module 模块名称,如command。
method 方法名称,如command模块下的run方法。
parameters 参数,如"/usr/bin/tail -100 /var/log/messages"。
运行结果
func-transmit --json < run.json
引用
{"SERVER-005": "Hello World www.tianya.cn", "SERVER-004": "Hello World www.tianya.cn", "SERVER-001": "Hello World www.tianya.cn", "SERVER-003": "Hello World www.tianya.cn", "SERVER-002": "Hello World www.tianya.cn"}
func-transmit --yaml < run.yaml
引用
---
SERVER-001: Hello World www.tianya.cn
SERVER-002: Hello World www.tianya.cn
SERVER-003: Hello World www.tianya.cn
SERVER-004: Hello World www.tianya.cn
SERVER-005: Hello World www.tianya.cn
从运行结果可以看出,根据不同的接口格式能返回相应的结果。此时输出的YAML与JSON格式能够被绝大多数的语言识别,接下来就可以做一些后续的处理了。