python django blog 2 : fabric 自動化部署
什麼是Fabric
是一個Python庫,可以通過SSH在多個host上批量執行任務。你可以編寫任務指令碼,然後通過Fabric在本地就可以使用SSH在大量遠端伺服器上自動執行。這些功能非常適合應用的自動化部署,或者執行系統管理任務
安裝Fabric
Fabric只支援python2,但是我們可以使用Fabric3。它是Fabric的python3版本。
啟用虛擬環境後。使用pip命令即可了。
zhou:~ zhouming$ source ~/Documents/Envs/blogproject_env/bin/activate
(blogproject_env) zhou:~ zhouming$ pip3 install fabric3
部署過程回顧
- ssh登入到遠端伺服器
- 切換到工程根目錄,
git pull
拉取最新的程式碼 - 根據拉取的程式碼中的
requirement.txt
,安裝依賴。 - 要執行
python manage.py collectstatic
收集靜態檔案。 - 執行
python manage.py migrate
遷移資料庫。 - 重啟
Nginx
和Gunicorn
使改動生效。
我們可以讓Fabric執行這些步驟,實現部署的自動化
編寫 Fabric 指令碼
一般Fabric指令碼放在本地電腦的專案根目錄下。
from fabric.api import env, run
from fabric.operations import sudo
GIT_REPO = "git@github.com:rookie250/detail.git"
env.user = 'root' ###
env.password = '....' ### 填上自己的root密碼就可以了。
# 填寫你自己的主機對應的域名
env.hosts = ['www.zhoublog.kim']
# 一般情況下為 22 埠,如果非 22 埠請檢視你的主機服務提供商提供的資訊
env.port = '26421'
def deploy():
source_folder = '/home/zhou/sites/www.zhoublog.kim/detail'
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 migrate
""".format(source_folder))
sudo('restart gunicorn-www.zhoublog.kim')
sudo('service nginx reload')
回顧一下自己ssh命令登入的過程
zhou:~ zhouming$ ssh root@65.49.224.37 -p 26421
root@65.49.224.37's password:
實際上env.user就是登入名,env.password就是登入密碼,env.hosts是登入的主機域名。env.port 是主機ssh服務的埠號,source_folder 是遠端伺服器工程的根目錄。
踩的坑總結
發現使用root賬號名無法登入到
回顧知識點 ssh 登入
ssh-keygen -t rsa
參考
ssh登入:http://blog.csdn.net/wh_19910525/article/details/7433164
數字簽名: https://www.cnblogs.com/SirSmith/p/4985571.html
相關文章
- Python自動化部署工具-FabricPython
- python學習-fabric(高效遠端自動化部署工具)Python
- Python自動化運維工具-Fabric部署及使用總結Python運維
- 如何高效地遠端部署?自動化運維利器 Fabric 教程運維
- Python+Django+Ansible Playbook自動化運維PythonDjango運維
- Beego 自動化部署Go
- 用 python 寫一個自動化部署工具Python
- 使用pm2自動化部署node專案
- React服務端渲染+pm2自動化部署React服務端
- Mysql5.6 自動化部署MySql
- .NET網站自動化部署網站
- vue自動化部署指令碼Vue指令碼
- Django 介面自動化測試平臺Django
- Python遠端部署利器Fabric詳解Python
- 基於Python豆瓣自動化測試【2】Python
- Python+Django+ansible playbook自動化運維專案實戰PythonDjango運維
- 華為測試大牛Python+Django介面自動化怎麼寫的?PythonDjango
- vue 自動化部署 jenkins 篇VueJenkins
- Docker 之 Jenkins自動化部署DockerJenkins
- 如何做Serverless自動化部署Server
- 遠端部署神器 Fabric,支援 Python3Python
- python 介面自動化Python
- nuxt+pm2 自動化部署及打包後檔案自動上傳阿里雲OSSUX阿里
- iOS自動化打包部署踩坑記iOS
- 陷入jenkins自動化部署的坑Jenkins
- [原] php + Laravel 實現部署自動化PHPLaravel
- 利用Github Actions實現自動化部署Github
- Docker 之 Spring Boot 自動化部署DockerSpring Boot
- 使用JulieOps管理Kafka自動化部署?Kafka
- devops系統自動化部署流程dev
- Linux下半自動化部署(svn +maven)LinuxMaven
- Robot Framework 自動化測試--部署篇Framework
- git利用post-receive自動化部署Git
- SpringBoot手動部署到Tomcat和自動化熱部署Spring BootTomcat熱部署
- Windows10 & Python3 部署Robot FrameWork自動化測試框架WindowsPythonFramework框架
- python自動化測試Python
- Python自動化辦公Python
- 容器化部署實踐之Django應用部署(二)Django