激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python fabric實現遠程部署

python fabric實現遠程部署

2020-09-16 13:27apple9005 Python

這篇文章主要為大家詳細介紹了 python fabric實現遠程部署,具有一定的參考價值,感興趣的小伙伴們可以參考一下

python fabric實現遠程部署

需求描述

在多人協同開發項目的過程中,幾乎每天我們都要提交代碼到git服務器,然后部署到測試服務器,每天都在敲那重復的幾行命令,實在是無趣。怎么辦?運維自動化!接下來就說說fabric這玩意兒,替我們完成一些重復繁雜的工作,相信你會跟我一樣喜歡上它的!

本文項目背景

我們這次做的項目是用的django框架,每天我們提交代碼到git服務器后,都要手動上傳代碼到測試服務器,然后執行一系列django框架的命令。每天都要浪費10多分鐘的時間,做著重復的勞動,這些工作實在不是一個程序員該干的。。。

解決方案

借助Python的fabric模塊可以將自動化部署或者多機操作的命令固化到一個腳本里,然后通過此腳本去執行。

安裝fabric

注意:本機和目標服務器都要安裝一下
sudo easy_install fabric

或者用pip安裝:

pip install fabric

編寫腳本

local 是在本機執行;run 是在遠程機執行

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from fabric.api import hosts, run, env, local, cd, get, lcd
from fabric.tasks import execute
 
env.hosts = ["[email protected]:22", "[email protected]:22"]
env.passwords = {"[email protected]:22": "fab", "[email protected]:22": "tofabor"}
 
 
@hosts("[email protected]:22")
def update():
  """更新測試服務器代碼"""
  with cd("/opt/project/project"): # 進入測試服務器的項目目錄
    run("git pull origin master") # 從git服務器的master分支下拉最新代碼
    run("/usr/local/bin/python2.7 /opt/project/project/manage.py makemigrations") # 這是django框架檢測數據庫變動的命令
    run("/usr/local/bin/python2.7 /opt/project/project/manage.py migrate") # 這是django框架執行數據庫變更的命令
 
@hosts("[email protected]:22")
def restart():
  """重啟服務"""
  execute('stop')
  execute('start')
 
 
@hosts("[email protected]:22")
def start():
  """開始服務"""
  with cd("/opt/project/project"):
    run("supervisorctl start dev")
 
@hosts("[email protected]:22")
def stop():
  """停止服務"""
  pids = run("ps -ef |grep '9001'| awk '{print $2}'")
  pid_list = pids.split('\r\n')
  for i in pid_list[:-2]:
    run('kill -9 %s' % i) # 殺掉運行服務進程

如上腳本保存為fabfile.py (也可保存為其他名稱,只是運行命令不一樣,下面會詳述)

執行腳本

如果你的腳本名稱為fabfile.py,那么可以在終端進入你fabfile.py的目錄,敲入如下命令回車:

fab update

緊接著,你會看到終端提示你輸入git賬號及密碼,待你輸入成功后,將自動下拉git服務器的代碼到測試服務器。
之后運行如下命令,重啟服務:

fab restart

如果你的文件名為其他名稱,比如ab.py, 那么執行 fab update /restart是錯誤的,怎么云運行呢?

fab -f ab update
fab -f ab restart

注:fabric相當強大,此文只是列舉一小功能。如需深入學習,請參見官方文檔http://docs.fabfile.org/en/1.6/

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: wwwxxx国产 | 免费国产自久久久久三四区久久 | 国产精品一区二区三区在线播放 | 亚洲免费观看视频 | 国产精品一区视频 | 欧美aaaaa一级毛片在线 | 美女亚洲综合 | 亚洲精品一区二区三区在线看 | 欧美成人免费电影 | 精国品产一区二区三区有限公司 | av在线免费看片 | 国产精品久久久久久久久久 | 免费毛片随便看 | 精品国产91久久久久久久妲己 | 欧美三级欧美成人高清www | 久久免费视频3 | 九九爱视频 | 青青草免费观看完整版高清 | 91九色视频在线播放 | 黄色三级三级三级 | 91精品国产91 | 香蕉视频1024 | 免费国产视频在线观看 | 亚洲啊v在线观看 | 免费a视频 | 成人午夜一区二区 | av久草| 中国大陆一级毛片 | 九九视屏| 一本色道久久99精品综合蜜臀 | 国产精品一区二av18款 | 得得啪在线视频 | 色视频在线 | 91麻豆精品国产91久久久无需广告 | 久久精品一区二区三区不卡牛牛 | a免费看 | 日韩av片网站 | 国产精品久久久久久久久久三级 | 国内精品久久久久久久影视红豆 | 在线播放免费av | 99re热视频这里只精品 |