fabric是一款命令行工具,支持執行本地命令,執行遠程命令,上傳下載等。fabric像一個subprocess+paramiko的集合,又像一個更加輕量級的ansible,可以批量對服務進行操作
安裝插件
'''
安裝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代碼報告