Python下Fabric的使用

文中部分内容整理自官方文档。如果文中出现错误,欢迎指出与交流。

Fabric是什么?

Fabric 是一个 Python的库和命令行工具,用来提高基于 SSH 的应用部署和系统管理效率。可以实现与远程服务器的自动化交互。Fabric底层基于paramiko模块。其特点即为简单高效,并且支持多线程。在需要运维数十台至几百台机器(视情况而定)的情况下非常好用。但如果需要运维上千台并不推荐使用Fabric,可以尝试使用saltstack。

Fabric的使用

在搞清Fabric的作用后,我们可以尝试通过一些简单的程序,来更加深入的了解Fabric。

注:文中实验环境均为Centos7.3。使用的python版本为python2.7。

安装Fabric模块

需要先安装paramiko模块(上文提到了,Fabric基于这个模块)。

#yum  install  gcc  python-crypto  python-devel  python-paramiko  -y

通过pip命令安装Fabric

#pip  install  fabric

如果没有pip命令,可以通过以下命令安装:

#yum install  python-pip

至此Fabric模块就安装好了。

Hello Fabric

一个合格的教程,一定少不了hello world这个国际惯例:

#vim  fabfile.py      

注:fabric执行的时候会默认寻找当前路径下的fabfile.py文件。如果文件名为其它,需要在执行的时候通过-f 文件名的方式手动指定文件。

def hello()print "hello world"

Fabric脚本执行并不使用python命令,而是使用fab命令(在安装模块时会一起安装)。所以这个脚本的执行方法为:

#fab  hello    #hello对应脚本中你想执行的函数名。
Hello world!

Done.

#fab -f  你的文件名   hello   #此方法针对文件名不为fabfile时

至此我们便基于Fabric完成了一个非常简单的脚本,甚至连Fabric模块都不需要导入。但从中大家可以了解到Fabric脚本就是在文件中定义一个或多个函数,函数中是你要执行的任务。然后通过fab命令执行fabfile.py文件,执行你要执行的函数。

Fabric.api模块

Fabric.api是Fabric中最常用也是最核心的模块。可以使用此模块来实现与远程服务器的交互。简单的使用这些API就可以完成大部分应用场景的需求。

常用api 说明 例子
local 在本地执行命令 local(‘username -r’)
run 在远程执行命令 run(‘username -r’)
lcd 切换本机路径 lcd(‘/usr’)
cd 切换远程服务器路径 cd(‘/usr’)
put 上传文件到远程服务器 put(‘本地文件’,’远程路径’)
get 从远程服务器下载文件 get(‘远程文件’,’本地路径’)
prompt 获取用户输入(类似input) prompt(‘input path’)
confirm 让用户确认是否继续 confirm(‘continue?’)
env 定义全局信息,如主机、密码等 env.hosts=’localhost’
例子一:

注:Fabric基于paramiko模块,paramiko底层就是调用ssh命令来对远程主机进行管理。所以要使用Fabric来管理远程主机,要保证服务器端开启sshd服务,并且保证可以成功访问。

查看本地和远程主机的内核版本。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值