Python之Fabric模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之Fabric模块相关的知识,希望对你有一定的参考价值。

Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整执行日志输出等功能。Fabric在Paramiko的基础上做了更高一层的封装,操作起来会更加简单。

命令说明

命令格式:

fab [options] <command>[:arg1,arg2=val2,host=foo,hosts=‘h1;h2‘,...] ...
-l     #显示定义好的任务函数名
-f     #指定fab入口文件,默认入口文件名为fabfile.py
-f     #指定网关(中转)设备,比如堡垒机环境,填写堡垒机IP即可
-H     #指定目标主机,多台主机用‘,’号分隔
-p     #远程账号的密码,fab执行时默认使用root账户
-P     #以异步并行方式运行多主机任务,默认为串行运行
-R     #指定role(角色),以角色名区分不同业务组设备
-t     #设置设备连接超时时间(秒)
-T     #设置远程主机命令执行超时时间(秒)
-w     #当命令执行失败,发出警告,而非默认中止任务。

简单实例

1.查看本地和远程主机的内存使用大小

192.168.100.242是本机,192.168.100.245是远程主机

[email protected]:/usr/local/sbin# cat fab1.py
#!/usr/bin/env python
from fabric.api import *
env.hosts = [‘192.168.100.242‘,‘192.168.100.245‘]
env.user = ‘root‘
env.passwords = {‘[email protected]:22‘:‘root‘,‘[email protected]:22‘:‘abc123‘}
@runs_once
def local_mem():
    local(‘free -m‘)
def remote_mem():
    run(‘free -m‘)

查看可以执行的命令:

[email protected]:/usr/local/sbin# fab -f fab1.py -l
Available commands:

    local_mem
    remote_mem

下面是执行结果:

[email protected]:/usr/local/sbin# fab -f fab1.py local_mem
[192.168.100.242] Executing task ‘local_mem‘
[localhost] local: free -m
             total       used       free     shared    buffers     cached
Mem:         48294      35086      13207          4       1775      31047
-/+ buffers/cache:       2263      46031
Swap:            0          0          0

Done.
[email protected]:/usr/local/sbin# fab -f fab1.py remote_mem
[localhost] local: free -m
             total       used       free     shared    buffers     cached
Mem:         48294      35087      13206          4       1776      31049
-/+ buffers/cache:       2262      46031
Swap:            0          0          0

Done.
[192.168.100.245] run: free -m
[192.168.100.245] out:              total       used       free     shared    buffers     cached
[192.168.100.245] out: Mem:           984        890         93          0        188        208
[192.168.100.245] out: -/+ buffers/cache:        493        490
[192.168.100.245] out: Swap:         3071          0       3071
[192.168.100.245] out:


Done.

本文出自 “小屁孩儿” 博客,谢绝转载!

以上是关于Python之Fabric模块的主要内容,如果未能解决你的问题,请参考以下文章

python fabric模块 生产环境dubbo代码包发布管理完整实例

python之模块和包

python之模块和包

python之基础篇——模块与包

Python模块学习 - fabric

python之paramiko模块