import json
import socket
from thread import *
from ansible_api import *
from rpyc import Service
from rpyc.utils.server import ThreadedServer class ManagerService(Service): def exposed_login(self,user,passwd): if user=="ANuser" and passwd=="KJS23o4ij09gHF734iuhsdfhkGYSihoiwhj38u4h":
self.Checkout_pass=True
else:
self.Checkout_pass=False def exposed_Runcommands(self,conn): self.data = conn
recvData = eval(self.data)
if recvData['task_type'] == '初始化及软件安装':
push_resource = recvData['resource']
task = MyTask(push_resource)
if recvData['init_type'] == 'initalize':
res = task.qd_initialize()
elif recvData['init_type'] == 'php':
res = task.qd_php()
elif recvData['init_type'] == 'tomcat':
res = task.qd_tomcat()
elif recvData['task_type'] == 'root密码修改':
push_resource, password, username = recvData['resource'], recvData['pass_new'], 'root'
for i in push_resource:
task = MyTask(i)
pass_auth = task.passwd_auth
if pass_auth == 'pong':
res = task.chan_root_pw(username, password_new)
elif pass_auth == 'bad':
res = 'root密码错误,重新确认后再输入'
else:
push_resource, yml, upstreams, upstream, servers, server_ssls, locations = recvData['resource'], recvData['yml'], recvData['upstreams'], recvData['upstream'], recvData['servers'], recvData['server_ssls'], recvData['locations']
for i in push_resource:
task = MyTask(i)
pass_auth = task.passwd_auth
if pass_auth == 'pong':
task = App(i)
res = task.nginx_conf_deploy(yml, upstreams, upstream, servers, server_ssls, locations)
a = {}
a['mqqpass'] = i
res = dict(res, **a) print res
returnString = str(res)
return returnString s = ThreadedServer(ManagerService,port=28080,auto_register=False)
s.start()

rpyc的更多相关文章

  1. rpyc 回调模式工作不正常

    rpyc 回调模式工作不正常 最近使用了 rpyc 来处理一个多节点间的文件同步的任务,目标是使用 rpyc 来实现简单的 p2p 文件传输机制,以减少单点负载和单点失败对传输的影响. 和 p2p 的 ...

  2. Python之Rpyc模块

    简介 rpyc (Remote Python Call)为分布式计算环境提供了优良的基础平台.使用rpyc编写c/s结构程序,完全不用考虑老式的socket编程,现在只用编写简单的3.5行代码即可完成 ...

  3. 结合rpyc使用python实现动态升级的方法

    动态升级,就是程序不退出的情况下,将其代码更新的策略.假设集群含有多个机器,然后每个机器部署一套程序,当升级的时候就要去所有的上面部署一把. (1)有个包装程序专门负责接口并检查是否需要更新,当需要更 ...

  4. python rpyc 报错: AttributeError: cannot access 'new'

    Error msg: Traceback (most recent call last): File "/home/hpcm/Desktop/test/install/client.py&q ...

  5. python Rpyc简单使用

    客户端可以直接调用服务端代码. rpycserver #!/usr/bin/env python #coding:utf-8 from rpyc.core.service import SlaveSe ...

  6. rpyc + plumbum 实现远程调用执行shell脚本

    rpyc可以很方便实现远程方法调用, 而plumbum则可以实现在python中类似shell的方式编码: 具体实现代码如下: Server.py import rpyc from rpyc.util ...

  7. Pyhton开源框架(加强版)

    info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...

  8. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  9. 知道创宇研发技能表v3.1

    by @知道创宇(www.knownsec.com) @余弦 & 404团队 后续动态请关注微信公众号:Lazy-Thought 说明 关于知道创宇 知行合一 | 守正出奇 知道创宇是一家黑客 ...

随机推荐

  1. DropDownList添加客户端下拉事件操作

    如果要想给 DropDownList 服务器控件添加客户端下拉事件,我们可以强制给它添加 onchange 事件,尽管在控件中没有这个方法的提示.添加完这个事件还不能达到目的,还要设置 AutoPos ...

  2. Unity工程3D和2D开发模式切换

    在新建工程时,经常会选择默认的3D工程,但是如果想做2D游戏又不小心选了3D工程呢,总不能把工程删了重新建吧,有个办法就是打开 Edit > Project Settings > Edit ...

  3. 怎么输入MathType不等号

    MathType是一款比较常用的数学公式编辑器,我们在使用这款软件的时候常常需要输入各种符号.有些新用户对这款软件不是很熟悉,对于一些符号不知道怎么输入,下面我们来给大家介绍介绍MathType不等号 ...

  4. VC++ 打开文件或文件夹对话框的实现方法

    实际工作开发中,由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有.特总结了常用的实现方法,仅供开发参考. 1. 打开文件对话框 常用的方法是使用系统的CFileDialo ...

  5. 如何在 React Native 中写一个自定义模块

    https://my.oschina.net/jpushtech/blog/983230

  6. python--list和tuple类型--2

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 一.创建list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以 ...

  7. 详解JavaScript的splice()方法

    from:http://www.jquerycn.cn/a_10447 在javascript中splice()方法,是一个很强的数组方法,它有多种用法.splice()主要用途是向数组的中部插入项. ...

  8. MySQL性能优化(一)-- 存储引擎和三范式

    一.MySQL存储引擎 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存 ...

  9. m2014-architecture-imgserver->配置lighttpd mod_mem_cache 模块做静态资源服务器

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://freehat.blog.51cto.com/1239536/989171 一 l ...

  10. Java中list对象的三种遍历方式

    1.增强for循环 for(String str : list) {//其内部实质上还是调用了迭代器遍历方式,这种循环方式还有其他限制,不建议使用. System.out.println(str); ...