官網地址html
1.安裝python
pip install fabric
依賴 Paramiko 、PyCrypto庫windows
如下依賴肯能要手動安裝 api
#安裝 pycrypto 密碼庫
pip install pycrypto
#安裝 pycrypto 依賴
pip install ecdsa
ps:【windows7 x64 ,python2.7 】Windows下pip安裝包報錯:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
能夠安裝一個Micorsoft Visual C++ Compiler for Python 2.7的包服務器
2.fabric使用
新建py腳本:fabfile.py併發
def hello(): print("Hello world!")
執行fab命令cors
fab hello
若是當前模塊下沒有fabfile.py文件,那麼須要指定-f參數 python2.7
fab -f test.py hello
使用參數工具
def hello(name, value): print("%s = %s!" % (name, value))
fab hello:name=age,value=20
執行本地操做ui
from fabric.api import local, lcd def lsfab(): with lcd('~/tmp/fab'): local('ls')
遠程操做
def setting_ci(): local('echo "add and commit settings in local"') def update_setting_remote(): print "remote update" with cd('~/temp'): #cd用於進入某個目錄 run('ls -l | wc -l') #遠程操做用run
多服務器操做
#!/usr/bin/env python # encoding: utf-8 from fabric.api import * env.roledefs = { 'testserver': ['user1@host1:port1',], 'productserver': ['user2@host2:port2', ] } @roles('testserver') def task1(): run('ls -l | wc -l') @roles('productserver') def task2(): run('ls ~/temp/ | wc -l') def do(): execute(task1) execute(task2)
用不一樣顏色打印
from fabric.colors import * def show(): print green('success') print red('fail') print yellow('yellow')
fabric 命令行工具
裝飾器做用? @task @parallel 命令行經常使用: fab --help fab -l -- 顯示可用的task(命令) fab -H -- 指定host,支持多host逗號分開 fab -R -- 指定role,支持多個 fab -P -- 併發數,默認是串行 fab -w -- warn_only,默認是碰到異常直接abort退出 fab -f -- 指定入口文件,fab默認入口文件是:fabfile/fabfile.py
更多參見官網