<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[运维进行时]]></title> 
<link>https://blog.liuts.com/index.php</link> 
<description><![CDATA[互联网运维与架构]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[运维进行时]]></copyright>
<item>
<link>https://blog.liuts.com/post//</link>
<title><![CDATA[Func非Python API实现远程调用[原创]]]></title> 
<author>刘天斯 &lt;liutiansi@gmail.com&gt;</author>
<category><![CDATA[Func]]></category>
<pubDate>Wed, 02 Jun 2010 04:04:26 +0000</pubDate> 
<guid>https://blog.liuts.com/post//</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关于Func非Python API实现远程调用，目的是给第三方工具提供调用及返回接口。Func使用func-transmit命令来实现，支持YAML 1.0 与 JSON，使用上非常简单。例子如下：<br/><span style="color: #0000FF;"><strong>YAML格式</strong></span><br/>#vi run.yaml<br/><textarea name="code" class="c" rows="15" cols="100">
clients: "*"
async: False
nforks: 1
module: command
method: run
parameters: "/bin/echo Hello World"
</textarea><br/><span style="color: #0000FF;"><strong>JSON格式</strong></span><br/>#vi run.json<br/><textarea name="code" class="c" rows="15" cols="100">
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"clients": "*",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"async": "False",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"nforks": 1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"module": "command",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"method": "run",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"parameters": "/bin/echo Hello World"
&#125;
</textarea><br/><span style="color: #0000FF;"><strong>参数说明</strong></span><br/><span style="color: #008000;">clients</span>&nbsp;&nbsp;&nbsp;&nbsp;目标主机，"*"代码所有被控主机。<br/><span style="color: #008000;">async</span>&nbsp;&nbsp;&nbsp;&nbsp; 是否异步，是一个bool值，True为使用异步，False则不使用。<br/><span style="color: #008000;">nforks</span>&nbsp;&nbsp;&nbsp;&nbsp;启用的线程数，用数字表示。<br/><span style="color: #008000;">module</span>&nbsp;&nbsp;模块名称，如command。<br/><span style="color: #008000;">method</span>&nbsp;&nbsp;方法名称，如command模块下的run方法。<br/><span style="color: #008000;">parameters</span>&nbsp;&nbsp;参数，如"/usr/bin/tail -100 /var/log/messages"。<br/><br/><span style="color: #0000FF;"><strong>运行结果</strong></span><br/>func-transmit --json < run.json<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>&#123;"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"&#125;<br/></div></div><br/>func-transmit --yaml < run.yaml<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>---<br/>SERVER-001: Hello World www.tianya.cn<br/>SERVER-002: Hello World www.tianya.cn<br/>SERVER-003: Hello World www.tianya.cn<br/>SERVER-004: Hello World www.tianya.cn<br/>SERVER-005: Hello World www.tianya.cn<br/></div></div><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从运行结果可以看出，根据不同的接口格式能返回相应的结果。此时输出的YAML与JSON格式能够被绝大多数的语言识别，接下来就可以做一些后续的处理了。<br/>Tags - <a href="https://blog.liuts.com/tags/func/" rel="tag">func</a> , <a href="https://blog.liuts.com/tags/func-transmit/" rel="tag">func-transmit</a>
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post//#blogcomment</link>
<title><![CDATA[[评论] Func非Python API实现远程调用[原创]]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://blog.liuts.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>