http://blog.csdn.net/smallfish2983/article/details/38078019
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站设计、相城网络推广、小程序设计、相城网络营销、相城企业策划、相城品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供相城建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
照着上面那哥们写的,初学,不要吐血,基本功能实现了。



root@ubuntu12:~/ansible/tornado# tree
.
├── templates
│   ├── index.html
│   └── result.html
└── test.py
root@ubuntu12:~/ansible/tornado# cat test.py
#coding:utf-8  
import os.path
import tornado.locale 
import tornado.httpserver
import tornado.ioloop  
import tornado.options  
import tornado.web  
from tornado.options import define, options  
import pymongo  
define("port", default=8000, help="run on the given port", type=int)  
class Application(tornado.web.Application):  
    def __init__(self):  
        #初始化一些东西  
        handlers = [  
            #url匹配  
            (r"/", MainHandler),  
            (r"/index", MainHandler),    
            (r"/result", Module_actionHandler),  
  
        ]  
        settings = dict(  
            #程序设置,字典形式  
            template_path=os.path.join(os.path.dirname(__file__), "templates"),  
            #设置模板文件路径  
            static_path=os.path.join(os.path.dirname(__file__), "static"),  
            #设置静态文件路径,如css\jpg\gif等  
            # ui_modules={"Book": BookModule},  
            #设置ui模块,可以用字典添加多个  
            debug=True,  
        )  
        tornado.web.Application.__init__(self, handlers, **settings)  
        #传入设置配置  
class MainHandler(tornado.web.RequestHandler):  
    #主页函数方法  
    def get(self):  
        #设置get方法函数  
        self.render(  
            "index.html",  
        )  
class Module_actionHandler(tornado.web.RequestHandler):  
    #定义模块操作函数方法  
       
  
    def post(self, *args, **kwargs):  
        pattern = self.get_arguments('pattern')[0]  
        #获取主机名  
        module_name = self.get_arguments('module_name')[0]  
        #获取模块名  
        module_args = self.get_arguments('module_args')[0]  
        #获取参数  
        
        import ansible.runner  
        runner = ansible.runner.Runner(  
            #根据ansible的api来运行脚本  
            module_name = module_name,  
            module_args = module_args,  
            pattern = pattern,  
        )  
        result = runner.run()  
    
        conn = pymongo.Connection("localhost", 27017)
        db = conn["ansible"] 
        if type(result) == dict:
           db.ansible.insert(result)       
     
 
        def pars_result(result):  
            # 定义一个判断结果的函数  
            if len(result['dark'])>0:  
                # dark返回不为空则表示操作失败了  
                return result['dark'],'失败!'  
            else:  
                return result['contacted'],'成功!'  
        result = pars_result(result)  
        self.render(  
            "result.html",  
            message = result[0],  
            result = result[1]  
        )  
if __name__ == "__main__":  
    tornado.options.parse_command_line()  
    http_server = tornado.httpserver.HTTPServer(Application())  
    http_server.listen(options.port)  
    tornado.ioloop.IOLoop.instance().start() 
# cat index.html
    
Enter arg bellow:
# cat result.html
    
ansible result
message: `message`
result: `result`
新闻标题:ansible+tornado+MongoDB
网页地址:http://www.scyingshan.cn/article/ijhdgj.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 