python远程服务操作工具:fabric,远程命令、本地命令、服务器操作利器!

355 阅读2分钟

fabric是一款命令行工具,支持执行本地命令,执行远程命令,上传下载等。fabric像一个subprocess+paramiko的集合,又像一个更加轻量级的ansible,可以批量对服务进行操作

file

【阅读全文】

安装插件

'''
安装fabric3
pip3 install fabric3
'''

# C:\Users\Administrator>pip3 install fabric3
# Collecting fabric3
#   Downloading Fabric3-1.14.post1-py3-none-any.whl (92 kB)
#      |████████████████████████████████| 92 kB 73 kB/s
# Requirement already satisfied: six>=1.10.0 in c:\python38\lib\site-packages (from fabric3) (1.15.0)

'''
查看版本信息
fab -V
'''
# C:\Users\Administrator>fab -V
# Fabric3 1.14.post1
# Paramiko 2.7.2

'''
查看帮助信息
fab -h
'''
# C:\Users\Administrator>fab -h
# Usage: fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...] ...
#
# Options:
#   -h, --help            show this help message and exit
#   -d NAME, --display=NAME
#                         print detailed info about command NAM

远程启用应用

# 导入Connection连接对象
from fabric import Connection

def run():
    '''
    应用部署
    :return:
    '''
    # 连接服务器
    conn = Connection("docker@10.3.210.19", connect_kwargs={"password": "docker"})
    # 执行控制台命令
    with conn.cd('/usr/load/project'):
        # 拉取hello world的docker镜像
        conn.run("docker pull hello world")
        # 启动镜像
        conn.run("docker run hello world")

本地命令执行

# 创建fabfile.py文件
# 导入本地local
from fabric.api import local

def hello_world():
    '''
    本地命令行
    :return:
    '''
    print("查看当前文件目录")
    local("ll -a")

# 命令行调用函数
# $ fab hello_world

【往期精彩】

● python超赞插件you-get,执行一行命令即可下载、命令行下载工具推荐!

● 办公自动化:Python-win32com自动将word文档转换成pdf格式!

● pandas数据统计插件的连接函数concat()妙用,灵活处理数据对象!

● Git LFS 3.0.0 发布,对大文件进行版本控制的 Git 扩展

● python有序序列的字典序列推导式运用技巧!

● Django 4.0 alpha 1 发布

● python经典有序序列的list列表推导式实践运用

● python常用转义字符串总结:各种字符转义的不同、如何取消转义字符效果?

● 推荐一款python、excel集成的数据分析工具PyXLL-Jupyter!

● 如何使用python完成对WebService服务的调用?suds-py3插件安利一下!

● 介绍一款优秀的IDE Grid Studio,Excel深度集成python,直接编写并执行python代码块!

● 十大开源软件基金会你知道哪些?

● python内置函数通过字符串的方式来执行函数代码块,类似java的反射机制相当强大!

● python-Coverage 代码覆盖率统计工具,生成html代码报告