国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python fabric實現遠程部署

2019-11-02 14:13:01
字體:
來源:轉載
供稿:網友

python fabric實現遠程部署

需求描述

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

本文項目背景

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

解決方案

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

安裝fabric

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

或者用pip安裝:

pip install fabric

編寫腳本

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

from fabric.api import hosts, run, env, local, cd, get, lcdfrom fabric.tasks import executeenv.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/

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉沽区| 梁平县| 修文县| 广灵县| 烟台市| 灵台县| 商城县| 昭觉县| 兴和县| 洛隆县| 仙桃市| 北碚区| 宜城市| 阿尔山市| 青铜峡市| 台州市| 盐池县| 桐乡市| 重庆市| 城市| 正镶白旗| 虹口区| 肥城市| 广水市| 嵊泗县| 容城县| 聂荣县| 贵州省| 瑞昌市| 调兵山市| 四子王旗| 永善县| 荥阳市| 静安区| 荆门市| 来宾市| 正宁县| 锦屏县| 昌江| 康保县| 那曲县|