最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python三大神器之fabric使用教程

 更新時間:2019年06月10日 10:42:28   作者:王希知  
fabric 是一個python包 是一個基于ssh的部署工具包,這篇文章主要介紹了python三大神器之fabric,需要的朋友可以參考下

fabric 是一個python包 是一個基于ssh的部署工具包

通常用來對網(wǎng)站 微服務(wù)等等的批量部署 例如 我有5臺線上服務(wù)器 可以通過一臺對著5臺分發(fā),實(shí)現(xiàn)自動部署的目的。

簡單介紹下 fabric的常用命令

常用命令 

lcd(dir): 進(jìn)入本機(jī)某目錄
local(cmd): 本機(jī)上執(zhí)行命令
cd(dir): 進(jìn)入服務(wù)器某目錄
run(cmd):服務(wù)器上執(zhí)行命令

Fabric

Fabric是一個python的遠(yuǎn)程執(zhí)行shell的庫,同時它也是一個命令行工具。它提供了豐富的同 SSH 交互的接口,可以用來在本地或遠(yuǎn)程機(jī)器上自動化、流水化地執(zhí)行 Shell 命令。

安裝Fabric

Fabric的官網(wǎng)是 www.fabfile.org ,源碼托管在 Github 上。你可以clone源碼到本地,然后通過下面的命令來安裝。但是在源碼安裝前,你必須先將Fabric的依賴包 Paramiko 裝上。

python setup.py develop

同時也可以使用pip安裝,因?yàn)閒abric是python的一個第三方庫,只需一條命令即可:

 pip install fabric

python3 安裝時使用的是fabric3 :( 安裝fabric3之前,需要先卸載fabric.)

  1. # fabric3 支持 python3
  2. pip uninstall fabric
  3. pip3 install fabric3

fabric 不只是一個Python 模塊,fabric 還是一個命令行工具,可以使用fab -h查看幫助信息

E:\my_data\hk-project>fab -V
Fabric3 1.14.post1
Paramiko 2.4.2
E:\my_data\hk-project>fab -h

入門使用

fabric的使用方式是通過編寫一個python文件,該文件中包含多個函數(shù),然后使用fab命令調(diào)用這些函數(shù),做相應(yīng)的任務(wù)。這些函數(shù)在fabric中稱為task。

# filename:abc.py​
 from fabric.api import *​
 def task1():
   print("hello")
 def hello():
   print("hello world")

寫好這個python文件后,在當(dāng)前目錄的路徑下使用fab工具執(zhí)行文件中的函數(shù)

[root@localhost python文件所在的目錄]# fab -f abc.py hello
 hello world
 ​# -f 指定fabfile文件,默認(rèn)為fabfile.py,若文件名是當(dāng)前目錄下的fabfile.py則無需指定

任務(wù)參數(shù)

此時你可能會想,如果這個函數(shù)有參數(shù)怎么辦呢?應(yīng)該如何傳遞參數(shù)給函數(shù)呢?Fabric 支持 Shell 兼容的參數(shù)用法: <任務(wù)名>:<參數(shù)>, <關(guān)鍵字參數(shù)名>=<參數(shù)值>,... 用起來就是這樣。

 def hello(name="world"):
   print("hello {}".format(name))

我們可以這樣去指定參數(shù)

$ fab hello:name=Jeff  # 或者 fab hello:Jeff
 hello Jeff
 ​Done.

小試牛刀

現(xiàn)在我們假設(shè)需要寫一個fabfile.py,能夠在每次web項(xiàng)目代碼更新后使用git提交并遠(yuǎn)程服務(wù)器拉去最新代碼并運(yùn)行,需求描述清楚了,開干吧!

# fabfile.py
 # 這里建議將該文件放入項(xiàng)目文件的根目錄中,方便git提交
 from fabric.api import local
 def test():
   local('python manage.py test myapp')
   # 測試是否能正常運(yùn)行
 def commit():
   local('git add -p && git commit -m "for test"')
 def push():
   local('git push')
 def prepare_deploy():
   test()
   commit()
   push()

這個 prepare_deploy 任務(wù)可以單獨(dú)調(diào)用,也可以調(diào)用更細(xì)粒度的子任務(wù)。

故障

Fabric 會檢查被調(diào)用程序的返回值,如果這些程序沒有干凈地退出,F(xiàn)abric 會終止操作。我們什么都不用做,F(xiàn)abric 檢測到了錯誤并終止,不會繼續(xù)執(zhí)行 commit 任務(wù)。

我們也可以對故障進(jìn)行一定的處理和判斷

from fabric.api import local, settings, abort
 from fabric.contrib.console import confir
 def test():
   with settings(warn_only=True):
     result = local('./manage.py test my_app', capture=True) 
     # result.return_code返回碼(0/1)和result.failed
   if result.failed and not confirm("Tests failed. Continue anyway?"): # confirm判斷用戶輸入
     abort("Aborting at user request.") # 指定錯誤退出信息
 # 一個名為 warn_only 的設(shè)置(或著說 環(huán)境變量 ,通??s寫為 env var )可以把退出換為警告,以提供更靈活的錯誤處理。如果設(shè)置為False,則一條命令運(yùn)行失敗會就會退出,不再執(zhí)行后面的命令。

建立連接

終于到了連接了,這個工具主要作用就是在遠(yuǎn)程執(zhí)行命令呀,學(xué)會了這個,我們就可以在本地執(zhí)行遠(yuǎn)程服務(wù)器的命令了。

from fabric.api import *
 env.hosts = ['root@192.168.10.11:22']​
 def deploy():
   run('ls') # run()用于執(zhí)行遠(yuǎn)程命令,local()執(zhí)行本地命令
 # 執(zhí)行后會提示你輸入密碼,輸入密碼即可

至此,入門結(jié)束,后續(xù)還有更多api的講解,敬請關(guān)注!

參考鏈接:

fabric官方中文文檔: https://fabric-chs.readthedocs.io/zh_CN/chs/tutorial.html

總結(jié)

以上所述是小編給大家介紹的python三大神器之fabric使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法詳解

    Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Flask-WTF針對CSRF攻擊的防護(hù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • 如何用pandas讀取一個文件或某個文件夾下所有文件

    如何用pandas讀取一個文件或某個文件夾下所有文件

    這篇文章主要介紹了如何用pandas讀取一個文件或某個文件夾下所有文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 使用Python Tkinter創(chuàng)建文件生成工具的操作步驟

    使用Python Tkinter創(chuàng)建文件生成工具的操作步驟

    我們將使用Python的Tkinter模塊創(chuàng)建一個簡單的文件生成工具,這個工具可以用來創(chuàng)建Excel、文本、Python腳本和Word文檔等不同類型的文件,感興趣的朋友可以參考下
    2024-04-04
  • 帶你了解Python語言的神奇世界

    帶你了解Python語言的神奇世界

    大家好,本篇文章主要講的是帶你了解Python語言的神奇世界,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python  word實(shí)現(xiàn)讀取及導(dǎo)出代碼解析

    Python word實(shí)現(xiàn)讀取及導(dǎo)出代碼解析

    這篇文章主要介紹了Python word實(shí)現(xiàn)讀取及導(dǎo)出代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 利用python實(shí)現(xiàn)短信和電話提醒功能的例子

    利用python實(shí)現(xiàn)短信和電話提醒功能的例子

    今天小編就為大家分享一篇利用python實(shí)現(xiàn)短信和電話提醒功能的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python數(shù)據(jù)分析matplotlib設(shè)置多個子圖的間距方法

    Python數(shù)據(jù)分析matplotlib設(shè)置多個子圖的間距方法

    今天小編就為大家分享一篇Python數(shù)據(jù)分析matplotlib設(shè)置多個子圖的間距方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Python爬取哆啦A夢-伴我同行2豆瓣影評并生成詞云圖

    Python爬取哆啦A夢-伴我同行2豆瓣影評并生成詞云圖

    哆啦A夢系列是陪伴我,乃至陪伴了幾代人成長的故事.50年來,藤子·F·不二雄先生創(chuàng)造了竹蜻蜓,任意門,時光機(jī)器等等無數(shù)的新奇道具,讓大雄和他的小伙伴們經(jīng)歷了各種冒險,也經(jīng)歷了許多充滿戲劇性的啼笑皆非的日常.特意寫了這篇文章,教大家怎么繪制詞云圖,需要的朋友可以參考下
    2021-06-06
  • Python引入多個模塊及包的概念過程解析

    Python引入多個模塊及包的概念過程解析

    這篇文章主要介紹了Python引入多個模塊及包的概念過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 一文詳解Python中數(shù)據(jù)清洗與處理的常用方法

    一文詳解Python中數(shù)據(jù)清洗與處理的常用方法

    在數(shù)據(jù)處理與分析過程中,缺失值、重復(fù)值、異常值等問題是常見的挑戰(zhàn),本文總結(jié)了多種數(shù)據(jù)清洗與處理方法,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考下
    2025-01-01

最新評論

贡山| 巴马| 沙河市| 孝义市| 儋州市| 漯河市| 东光县| 静宁县| 静海县| 克什克腾旗| 平罗县| 买车| 长子县| 宝鸡市| 仙居县| 北京市| 五大连池市| 当涂县| 乌鲁木齐县| 广德县| 广安市| 蒙阴县| 措勤县| 西青区| 冕宁县| 天柱县| 邻水| 根河市| 霸州市| 南澳县| 武穴市| 邵阳市| 抚远县| 张家口市| 东源县| 鹿邑县| 威海市| 嘉峪关市| 社旗县| 左云县| 乌恰县|