千家信息网

ansible + tornado + MongoDB

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,http://blog.csdn.net/smallfish2983/article/details/38078019照着上面那哥们写的,初学,不要吐血,基本功能实现了。root@ubuntu12:~
千家信息网最后更新 2026年11月03日ansible + tornado + MongoDB

http://blog.csdn.net/smallfish2983/article/details/38078019


照着上面那哥们写的,初学,不要吐血,基本功能实现了。




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



ansible

Enter arg bellow:



pattern


module_name


module_args







# cat result.html



ansible result

ansible result


message: `message`


result: `result`





附件:http://down.51cto.com/data/2364907
函数 方法 模块 字典 文件 路径 成功 东西 主机 主页 功能 参数 哥们 多个 形式 模板 照着 程序 结果 脚本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司华为 互联网下的科技发展 致骋互联网科技 奔汉互联网科技 盛创互联网科技有限公司 安控科技rtu产品工业互联网 江苏南京365互联网科技 深圳国际航运科技和互联网 互联网软件和科技 民营互联网公司国防科技 国大互联网教育科技有限公司薪资 富国互联网科技002692 2021世界互联网领先科技成果发布 福建互联网展示科技馆设计 互联网科技新闻 绵阳真晨互联网科技有限公司 北京品多多互联网科技有限公司 东风日产互联网科技公司叫什么 瑞安市蟠桃会互联网科技有限公司 山东亿川互联网科技有限责任公司 国智互联网科技 互联网是不是新科技 深圳互联网络科技有限公司 苏州互联网科技贷款公司 时间互联网络科技 深圳市运趣互联网科技有限公司 北京三清互联网科技 岳阳华臻互联网科技有限公司 互联网时代科技型公司的机会 知域互联网科技有限公司官网
0