欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python三大神器之fabric使用教程

系統 1789 0

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

通常用來對網站 微服務等等的批量部署 例如 我有5臺線上服務器 可以通過一臺對著5臺分發,實現自動部署的目的。

簡單介紹下 fabric的常用命令

常用命令?

            
lcd(dir): 進入本機某目錄
local(cmd): 本機上執行命令
cd(dir): 進入服務器某目錄
run(cmd):服務器上執行命令
          

Fabric

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

安裝Fabric

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

python setup.py develop

同時也可以使用pip安裝,因為fabric是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文件,該文件中包含多個函數,然后使用fab命令調用這些函數,做相應的任務。這些函數在fabric中稱為task。

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

寫好這個python文件后,在當前目錄的路徑下使用fab工具執行文件中的函數

            
[root@localhost python文件所在的目錄]# fab -f abc.py hello
 hello world
 ?# -f 指定fabfile文件,默認為fabfile.py,若文件名是當前目錄下的fabfile.py則無需指定
          

任務參數

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

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

我們可以這樣去指定參數

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

小試牛刀

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

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

這個?prepare_deploy 任務可以單獨調用,也可以調用更細粒度的子任務。

故障

Fabric 會檢查被調用程序的返回值,如果這些程序沒有干凈地退出,Fabric 會終止操作。我們什么都不用做,Fabric 檢測到了錯誤并終止,不會繼續執行 commit 任務。

我們也可以對故障進行一定的處理和判斷

            
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 的設置(或著說 環境變量 ,通常縮寫為 env var )可以把退出換為警告,以提供更靈活的錯誤處理。如果設置為False,則一條命令運行失敗會就會退出,不再執行后面的命令。
          

建立連接

終于到了連接了,這個工具主要作用就是在遠程執行命令呀,學會了這個,我們就可以在本地執行遠程服務器的命令了。

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

至此,入門結束,后續還有更多api的講解,敬請關注!

參考鏈接:

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

總結

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧美日韩高清 | 日本高清一区二区三区不卡免费 | 免费观看黄的小视频 | 日日a.v拍夜夜添久久免费 | 亚洲精品影院 | 国产精品成人一区二区 | 精品一区二区三区自拍图片区 | 天天综合色天天综合网 | 亚洲免费视频一区 | 亚洲国产天堂久久综合9999 | 国产亚洲福利精品一区 | 96自拍视频 | 天天影院成人免费观看 | 99久久免费国产精品 | 日本黄a三级三级三级 | 狠狠干狠狠操 | 色资源网站 | 亚洲欧美在线播放 | 色黄视频免费观看 | 日日骚视频 | 欧美一区二区三区在线播放 | 99精品视频在线观看 | 孕妇体内谢精满日本电影 | 久久影音先锋 | 精品欧美一区手机在线观看 | 天天摸夜夜摸狠狠摸夜夜摸 | 久久我们这里只有精品国产4 | 亚洲永久中文字幕在线 | www.色黄| 达达兔午夜起神影院在线观看麻烦 | 妈妈的朋友酷客影响 | 国产精品爽爽va在线观看网站 | 日韩经典中文字幕 | 久久久久国产精品免费免费搜索 | 91高清在线观看 | 欧美zzzz| 午夜精品久久久久久久久久久久久 | 精品久久 | 搞黄网站免费观看 | 午夜精品在线 | 波多野结衣中文在线观看 |