Fabric的安裝
Fabric支持pip,easy_install或源碼方式安裝,很方便解決包依賴問題,(根據(jù)用戶環(huán)境,自行選擇pip或ease_install)
pip install fabriceasy_install fabric源碼安裝不介紹了。
校驗安裝結果,如果導入模塊沒有提示異常,則說明安裝成功:root@Python_S6:~# python
Python 2.7.5+ (default, Sep 19 2013, 13:48:49) [GCC 4.8.1] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import fabric>>>官網(wǎng)提供了一個簡單的入門示例:
root@Python_S6:/home/chart7/test/fabric# cat farbic.py #!/usr/bin/env python# -*- coding: utf-8 -*-from fabric.api import run def host_type(): #定義一個任務函數(shù),通過run方法實現(xiàn)遠程執(zhí)行'uname -s'命令 run('uname -s')運行結果如果下圖所示

命令引用默認文件名為fabfile.py,如果使用非默認文件名稱,則需通過'-f'來制定,如:fab -H 192.168.1.23,192.168.1.24 -f host_type.py host_type,如果管理機與目標主機未配置密鑰認證信任,將提示會輸入目標主機對應賬戶登錄密碼。
一、fab的常用參數(shù)
fab作為Fabric程序的命令入口,提供了豐富的參數(shù)調(diào)用,命令格式如下:
fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',....]下面列舉了常用的幾個參數(shù),更多參數(shù)可使用fab -help查看.-l,顯示定義好的任務函數(shù)名;-f,指定fab入口文件,默認入口文件名為fabfile.py;-g,指定網(wǎng)關設備,比如堡壘機環(huán)境,填寫堡壘機IP即可;-H,指定目標主機,多臺主機用','號分隔;-P,以異步并行方式運行多個主機任務,默認為串行運行;-R,指定role(角色),以角色名區(qū)分不同業(yè)務組設備;-t,設置設備連接超時時間;-T,設置遠程主機命令執(zhí)行超時時間;-w,當命令執(zhí)行失敗,發(fā)出警告,而非默認終止任務二、fabfile的編寫
fab命令是結合我們編寫的fabfile.py(其他文件名必須添加-f filename引用)來搭配使用,部分命令行參數(shù)可以通過相應的方法來代替,使之更加靈活,列如"-H 192.168.1.23,192.168.1.24",我們可以通過定義env.hosts來實現(xiàn),如"env.hosts=[192.168.1.23,192.168.1.24]".fabfile的主體由多個自定義的任務函數(shù)組成,不同任務函數(shù)實現(xiàn)不同的操作邏輯,下面詳細介紹
三、全局屬性設定
env對象的作用是定義fabfile的全局設定,支持多個屬性,包括目標主機,用戶,密碼角色,各屬性說明如下:
復制代碼 代碼如下:env.host,定義目標主機,可以用IP或主機名表示,以Python的列表形式定義,如env.hosts=['192.168.1.23,192.168.1.24'].env.exculde_hosts,排除指定主機,如env.exclude_hosts=['192.168.1.23']env.user,定義用戶名,如env.user="root"env.port,定義目標主機端口,如env.port = '22'env.password,定義密碼,如env.password='123456'env.passwords,與password功能一樣,區(qū)別在于不同主機不同密碼的應用場景,需要注意的是,配置passwords時需要配置用戶,主機,端口等信息,如:env.passwords = {'root@192.168.1.21:22':'123456','root@192.168.1.23:22':'3234234','root@192.168.1.24:23':'09887',}env.gateway,定義網(wǎng)關(中轉(zhuǎn),堡壘機)IP,如env.gateway = '192.168.1.1'新聞熱點
疑難解答