嵌入django服务器



设计dialog界面(html,css,django,template)


1.载入配置


paramiko1.png 


我们会在网页里显示


paramiko2.png 


2. 加载配置并显示服务器列表


配置里面把这个服务器的名字,给读取出来,比如说我们涉及的两个服务器,不如仙剑里面的。


paramiko3.png 


神魔之井、昆仑仙境这两个服务器,然后我们点部署的话它就执行我们需要的操作。


3. 一键部署并显示执行结果[date查询]


最后的时候一键部署并显示,执行结果,比如说我们查询每个服务器的当前时间。

paramiko4.png 


神魔之井的时间,我们就显示在后面,昆仑仙境的时间我们也显示在后面。



观察执行结果(html,django dict)


我们先看这个网页home_view


paramiko5.png


就是我们看到的这个载入配置的这个页面,我们在这里面,载入一个文件,载入一个文件它需要在view里面,首先是在这个url里面要定义一个处理它的函数。


paramiko6.png 


具体的处理是在home里面。然后我们首先判断一下,如果这个请求里面有这个file,也就是有文件。然后我们定义一个config把它给,就之前这个configparser,实例化一个对象然后读取,readfp直接读这个文件,然后我们就遍历它的section我们可以打印出来它这个,直接section,首先还有一个host_name,然后很快速的把它们给读取出来。


paramiko7.png 


然后我们怎么处理这些文件呢,就是从文件的到这些一个个字段,我们就设计把它保存在这个数据库里面,不如我们建立这个.


paramiko8.png 


Models,SHHInfo吧这些mode全部存起来,这个地方注意的是这个host_name它是,我们设计成中文要定义它的unicode就是现实出来这个mode的话它就显示这个,host_name,那么这里的话可以创建一个,可以用这个SSHInfo刚才建立这个mode,这个是django的一种写法,就是说它会比价检测,如果没有的话,就创建,有的话就更新。每个都赋值过去,然后我们就新建了一个mode


paramiko9.png 


我们然后把这个mode给保存,这个时候的话我们需要读取之后,需要显示它,我们这个时候就可以,这个步骤一旦执行完,我们就可以从SSHInfo这个object里面把它所有的这个对象给那出来。这边可以加一个判断,如果这个里面读取有配置的话,就是大于的话,我们就把这个配置给渲染出来。配置里面的东西,把这些信息给它。


paramiko10.png 


这些信息作为django的传给这个updata里面,else还返回原来这个页面home_view我们看一下,这个ssh里面意思是什么呢。它其实就是把遍历的这个ssh


paramiko11.png 


把它给显示出来,把host_name显示出来让我们看的到,然后它这还有一个button,button的话就是那个部署,就是这个地方


paramiko12.png 


一个是显示神魔之井,就是每个sshinfo的这个名字,下面有个部署这个控件,然后这个地方,它其实是django的这个模板的一些知识,它一旦你把它显示出来,它如果点这个部署的时候它会执行什么操作呢,这个sshlist点部署的时候这里涉及的它会发到这个run_ssh_cmd这个url中,然后我们在这个django的这个url里边要处理它这个name=’ run_ssh_cmd’,我们就用这个view里面的run_ssh_cmd去处理它,怎么处理那我们这里定义了处理函数run_ssh_cmd,我们这个时候就把这个最简单的处理办法,所有的这个SSHInfo给取出来所有的远程服务器的 信息给处理出来然后遍历它,因为要执行命令所以说我们新建一个,paramiko_client的对象,其实这个地方是我们处理过的,为什么这样,不像之前把配置给读取出来,因为它这不需要配置,已经听过网页,已经加载进来了,我们这个时候,值是需要在connect的时候.


paramiko13.png 


把这个sshmode 给导入出来,从这里面取到它的,相关的配置信息,这样的话就更直观,更方便而不需要在读取配置,因为读取配置,在我们的第一个网页的已经执行过了,所以说这个地方,在这个client的时候,它需要传入这个ssh然后我们就开始,执行一个简单的查询指令,比如说data,然后我们的改变就是在run_cmd的时候会把这个查询结果,给返回去,就返回这个查询的这个结果,然后便于我们在网页里所显示


paramiko14.png 


我们这个时候呢,需要把这个网页查询反倒这个网页里面,然后我们就先建一个字典,cmd_res,然后这个字典呢,它的key是这个host_name每个远程服务器的主机名然后它的value就是,这个查询的结果,我们最后把这个网页,渲染回去,那个网页对我们cmd_res这个网页然后它的需要这个结果就是com_res这个字典。

我们看一下,com_res这个网页


paramiko15.png 


它其实就是说遍历了这个cmd_res的这个item它里面的这些数据。然后把它显示出来,其实这个key就是我们刚才所,看到的这个host_name,value呢就是查询这个,这个主机的结果,其实现在我们可以把这个django的服务器给启动起来


paramiko16.png 


它开启了一个8000的端口我们可以打开,在网页上打开


paramiko17.png 


它报错了,说这个views.home里面里面没有返回这个结果。然后我们来检查一下


paramiko18.png 


这个地方应该是一个return,这个就对了,我们在打开一下


paramiko19.png 


对现在就正确了,然后我们选择这个文件


paramiko20.png 


Congif这个文件

把它提交就载入进去。


paramiko21.png 


paramiko22.png 


然后我们看到,它显示是默认得神魔之井,和昆仑仙境我们现在看一键部署


paramiko23.png 


现在它就显示了,这个执行每个远程服务器的操作的结果。



【本文由大发二分彩—大发三分彩官方独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 tvqo.cn
蜀ICP备13014270号-4 Version 5.0.0 release20160127

免费领取价值1888元求职宝典!

客服热线 400-862-8862

回到顶部