国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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 = ["fab@192.168.1.101:22", "root@192.168.1.101:22"]
env.passwords = {"fab@192.168.1.101:22": "fab", "root@192.168.1.101:22": "tofabor"}
 
 
@hosts("ktv@192.168.1.101: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("ktv@192.168.1.101:22")
def restart():
  """重啟服務"""
  execute('stop')
  execute('start')
 
 
@hosts("root@192.168.1.101:22")
def start():
  """開始服務"""
  with cd("/opt/project/project"):
    run("supervisorctl start dev")
 
@hosts("ktv@192.168.1.101: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/

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: a∨色狠狠一区二区三区 | 精品视频一区二区 | 搞黄免费视频 | 国产精品久久99 | 久久久精品综合 | 天天操天天射天天 | 91久久91久久精品免观看 | 亚洲一区二区三 | 亚洲精品在线视频 | 欧美日韩国产在线观看 | 精品一区二区在线观看 | 国产一区二区三区免费在线 | 青草福利 | 五月天婷婷在线视频 | 最新国产在线视频 | 国产一区二区在线播放 | 亚洲精品一区二三区不卡 | 一本色道久久综合狠狠躁篇的优点 | 野狼在线社区2017入口 | 高清av在线 | a视频网站 | 亚洲国产精品久久久久 | 国产一区二区三区四区二区 | 午夜视频一区 | 欧美激情在线播放 | 中文字幕在线观看av | 亚洲精品久久久久中文字幕欢迎你 | 久久久成人精品 | 亚洲综合区 | 一区二区三区入口 | 国产视频一二三区 | 国产成人视屏 | 久久中文免费 | 久久久久久久久久久久国产 | 国产精品久久久久久久久 | 日韩资源 | 黄片毛片在线观看 | 国产人妖一区二区 | 日韩欧美一区视频 | 欧美成人a∨高清免费观看 国产99久久 | 亚洲黄色在线观看 |