1. 程式人生 > >我的Django-blog學習(四):使用 Fabric3 自動化部署

我的Django-blog學習(四):使用 Fabric3 自動化部署

教程中使用的是python2支援的Fabric,但是現在已經有了支援python3Fabric3。廢話不多說開始。

  • 安裝
pip3 install fabric3
  • 在專案根目錄建立fabfile.py
 from fabric.api import env, run

from fabric.operations import sudo

GIT_REPO = "https://github.com/Arrowarcher/tanblog.git" 

env.user = 'xxx' 
env.password = 'xxx'

# 填寫你自己的主機對應的域名
env.hosts = [
'10.8.0.76'] # 一般情況下為 22 埠,如果非 22 埠請檢視你的主機服務提供商提供的資訊 env.port = '22' def deploy(): source_folder = '/root/sites/demo.blog.com/tanblog' run('cd %s && git pull' % source_folder) run(""" cd {} && ../env/bin/pip install -r requirements.txt && ../env/bin/python3 manage.py collectstatic --noinput && ../env/bin/python3 manage.py makemigrations && ../env/bin/python3 manage.py migrate """
.format(source_folder)) sudo('systemctl restart blog.service') sudo('service nginx reload')

仔細看就會發現我和教程有不同之處,我是使用的mysql資料庫,git倉庫也沒有上傳makemigrations裡的檔案,也沒有采用博主的方法配置自啟指令碼(詳細見上一篇文)。

  • 最後直接在有fabfile.py的目錄執行
fab deploy