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

python fabric實現(xiàn)遠程部署

 更新時間:2017年01月05日 08:41:18   作者:apple9005  
這篇文章主要為大家詳細介紹了 python fabric實現(xiàn)遠程部署,具有一定的參考價值,感興趣的小伙伴們可以參考一下

python fabric實現(xiàn)遠程部署

需求描述

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

本文項目背景

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

解決方案

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

安裝fabric

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

或者用pip安裝:

pip install fabric

編寫腳本

local 是在本機執(zhí)行;run 是在遠程機執(zhí)行

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框架檢測數(shù)據(jù)庫變動的命令
    run("/usr/local/bin/python2.7 /opt/project/project/manage.py migrate") # 這是django框架執(zhí)行數(shù)據(jù)庫變更的命令

@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 (也可保存為其他名稱,只是運行命令不一樣,下面會詳述)

執(zhí)行腳本

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

fab update

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

fab restart

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

fab -f ab update
fab -f ab restart

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python寫的本地WIFI密碼查看器的具體代碼

    python寫的本地WIFI密碼查看器的具體代碼

    本文主要分享一個本地wifi密碼查看器,用python實現(xiàn)的,代碼簡單易懂,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • python skimage 連通性區(qū)域檢測方法

    python skimage 連通性區(qū)域檢測方法

    今天小編就為大家分享一篇python skimage 連通性區(qū)域檢測方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python實現(xiàn)從pdf文件中提取文本,并自動翻譯的方法

    python實現(xiàn)從pdf文件中提取文本,并自動翻譯的方法

    今天小編就為大家分享一篇python實現(xiàn)從pdf文件中提取文本,并自動翻譯的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 編寫自定義的Django模板加載器的簡單示例

    編寫自定義的Django模板加載器的簡單示例

    這篇文章主要介紹了編寫自定義的Django模板加載器的簡單示例,Django是各色人氣Python框架中最為著名的一個,需要的朋友可以參考下
    2015-07-07
  • Python操作Mongodb數(shù)據(jù)庫的方法小結

    Python操作Mongodb數(shù)據(jù)庫的方法小結

    這篇文章主要介紹了Python操作Mongodb數(shù)據(jù)庫的方法,結合實例形式總結分析了Python針對MongoDB數(shù)據(jù)庫的基本模塊導入、連接、增刪改查及排序等相關操作技巧,需要的朋友可以參考下
    2019-09-09
  • 舉例講解Python中is和id的用法

    舉例講解Python中is和id的用法

    這篇文章主要介紹了舉例講解Python中is和id的用法,是Python學習當中的基礎知識,作者舉例進行了簡單說明,需要的朋友可以參考下
    2015-04-04
  • Python?4種實現(xiàn)定時任務的方案

    Python?4種實現(xiàn)定時任務的方案

    這篇文章主要給大家分享了Python?4種實現(xiàn)定時任務的方案,運用 while True: + sleep()、Timeloop 庫、threading.Timer 、內(nèi)置模塊 sched ,下面就來看看具體的實現(xiàn)過程吧
    2021-12-12
  • Python關于實參隨形參改變而改變的問題

    Python關于實參隨形參改變而改變的問題

    本文通過實驗總結了Python中可變和不可變數(shù)據(jù)類型的區(qū)別,并提出了通過使用.copy()方法或deepcopy()函數(shù)來保持可變數(shù)據(jù)不變的解決方案
    2024-11-11
  • 淺析python中的set類型

    淺析python中的set類型

    這篇文章主要介紹了python中的set類型,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Python Matplotlib繪制動畫的代碼詳解

    Python Matplotlib繪制動畫的代碼詳解

    使用matplotlib可以很容易地創(chuàng)建動畫框架。在本文中我們就將利用Matplotlib制作幾個簡單的動畫,文中的示例代碼講講詳細,感興趣的可以了解下
    2022-05-05

最新評論

阿城市| 惠水县| 宜春市| 凤庆县| 若羌县| 中方县| 务川| 榆中县| 凤凰县| 江安县| 晋城| 平安县| 黎平县| 格尔木市| 富宁县| 德安县| 泰和县| 开封市| 景宁| 利川市| 保定市| 永和县| 大洼县| 寻乌县| 厦门市| 土默特右旗| 山东省| 彭州市| 武穴市| 都江堰市| 宁晋县| 清涧县| 云梦县| 克什克腾旗| 浦城县| 新闻| 息烽县| 双城市| 眉山市| 长海县| 开封市|