我的Django-blog學習(四):使用 Fabric3 自動化部署
阿新 • • 發佈:2018-12-17
教程中使用的是python2
支援的Fabric
,但是現在已經有了支援python3
的Fabric3
。廢話不多說開始。
- 安裝
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