paramiko fabric简介



fabric是什么


fabric是一个基于Python(2。5-2。7)库和命令行工具,是用来流水化执行SSH以及部署应用或系统管理任务。

更具体的说fabric是通过命令行来执行任意的Python函数,或者是说更加容易地通过SSH执行Shell指令。



fabric的安装和简单使用


安装fabric也非常的简单就是用pip 指令 pip install fabric然后就会自动安装这个实在mac和Linux系统下可以这样安装,在windows的话可能安装要复杂一些,我们就是在本机的话mac、Linux都是用过的是可以的,然后它使用也是非常简单就是fab指令。

首先要定义一个fabfile它有一个默认的Python的文件,就是fabfile。py,我们可以看一下。然后这里边比如说需要一些api我们导入。


paramiko1.png 


然后定义一些函数,在这里定义了三个函数,一个是无参的Python函数,一个是带参数的Python函数,另外一个就是说可以执行这个任务的一个简单的任务执行函数,我们退出。


paramiko2.png 


我们可以运行一些这个,我们之前说过它可以很简单的的执行Python的函数,比如说我们执行这个hello。


paramiko3.png 


paramiko4.png 


它就把这个hello这个输出给打印出来比如说我们有参数的这个test我们输出个hello,让它输出。


paramiko5.png 


它输出hello了,比如说我们要执行任务指定它的这个host,就会说指定它,比如说localhost host_type,然后输入密码。


paramiko6.png 


它就把这个whoami这个指令给运行,然后把结果给打印出来了。看起来也是非常的方便的



fabric与paramiko关系


fabric是基于paramiko进行的二次开发,发展成成熟的这个自动化运维部署的一个工具。


Fabric主要API,大概有七类


带颜色的输出类(color output)

带颜色的输出这就是一些管类的函数。

上下文管理类(context managers)

装饰器类(decorators)

网络类(network)

操作类(oprations)

任务类(tasks)

工具类(utils)



fabric有哪些改进与特色


改进


首先就是一个上下文管理类(context managers)[获取上下文]我们之前的课上就已经讲过这个paramiko,它的执行指令上下,就是上下指令是没有任何关系的,这样的话就会在实际的操作中会有一定的问题,然后这个上下文管理类就是来解决这个问题,就是一些改进。另外它有一些任务类(tasks)刚才,我们在哪呢演示的时候,也用那个fab –H localhost执行一个host_type这个指令,然后它其实就执行了任务类(tasks)里面调用它的,row函数然后这样就可以很方便的,就执行了远程服务器的运行一些操作,然后就是一些装饰器类,装饰器类是Python的一个语法堂的一个东西。然后就更方便做一些操作。


新增功能


执行Python指令

新增的功能是什么呢,新增的功能就是说,不如说可以任意的执行Python的指令,它就像我们在show里面执行Python文件一样可以通过那个可以指定它的Python函数来执行这个函数来让它,运行然后很直观的看到它的结果,我们刚才在演示中,比如说在执行这个fab hello这个,就直接把它的这个函数的输出给打印出来了。


故障处理

还有它进行故障处理,就是说你可以指定一些故障的处理的方法,当让它有一些默认的故障出来,我们在之前的课程中就讲到了这个问题,就是原生的这个paramiko它对故障的处理,是不足的是需要我们在应用上做一些,自己的处理,然后在这个fabric里面它就做了这些扩展。另外这个fabric做了一个重要的扩展就是一些


可并行执行

就是并行的执行。淡然我们在以前的课程中也用了,比如说多进程、多线程跟这个协程来进行并行执行的这个操作,这个fabric它是内置执行,就是可以进行并行执行的操作,当然就带来了非常方便的,我们进行一些并行的一些操作。



fabric局限


非线程安全


它的一个局限是什么呢,它也有一个局限就是非线程安全,就是说我们在操作的时候还要注意这个线程的问题。



总结


从fabric的各种扩展我们可以看到我们依据这个paramiko可以做出自己各种各样的很多自己的扩展,比如之前的课程其实就是通过进行的封装就是一种扩展。大家可以做自己的扩展。当然我们大家在实际的工作中,遇到各种各样的问题或者是遇到,比如公司要解决某一个特定的问题,需要做一些很独特的扩展的的话,我们就可以依据paramiko它的API ,然后很方便的进行扩展来解决特定的问题。然后这个就是我们本节课的一个核心的思想,就是通过fabric的这个扩展还有它的这个改进来看到我们其实是可以用paramiko来做一些很有意义的一些事情。



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.tttoutiao.net
蜀ICP备13014270号-4 Version 5.0.0 release20160127

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

客服热线 400-862-8862

回到顶部

快乐赛车开奖 赖子棋牌 幸运飞艇官网 秒速快3 欢乐生肖 秒速时时彩 极速快乐8 全民彩票 青海快3走势 极速快3