首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python自动化部署工具-Fabric

预计阅读6分钟

今天分享一个Python的自动化发布工具—Fabric。

我在前面文章「

Linux系列开坑记(一)-常用的3个命令

」说了tar,rsync,supervisor这三个,从打包上传备份上线,进程管理工具。

我相信细心的读者发现了,但是这里其实还缺一个工具。

那就是衔接这三个步骤的工具,它可以通过SSH,让我们在远端服务器执行shell命令更加方便,更加智能的与服务器进行交互。

除了与远端服务交互,也非常方便我们日常执行较为复杂,需要要定制化的Python函数。

安装

pip install Fabric # 安装

pip freeze > requirements.txt # 把安装包写入文件中

一个官网例子:

使用fab执行一下效果如下:

这里面我们需要知道fab是fabric安装的命令行工具,我们主要是通过它进行操作。

我个人平时用的比较多的命令有:

run 远端执行命令

local 本地执行命令

cd 远端切换目录

lcd 本地切换

@task 装饰器声明函数为fab task

简单的脚本我觉得是已经够用了,复杂一点需要更多操作了,详情见后文。

部署步骤

通常情况下,作为一个Python工程师我们发布代码需要做的事儿常见的有以下几点:

git pull 拉取最新代码,比如master分支(或者develop分支)

tar 打包最新代码

rsync增量同步到远端服务器,去掉一些不需要的本地目录

备份数据库或者备份代码

supervisor指定重启远端一个或多个服务,通过交互式指令判断

sentry查看日志正常与否

除了最后一步,这里面所有的操作我们都在fabfile.py就进行操作了,一般情况下fabfile.py放在项目根目录,当然你放在其他地方也没有什么问题。通过-f进行指定就行。

概要讲了,下面请参看我们的一个实战例子

一个例子

在终端执行命令

fab deploy_test # 就能进行发布了测试环境了

fab deploy_product # 如果有就能发布了

通常情况下测试,开发,服务器与线上操作不太一样,我们可以通过上面方式进行操作。除了上面的操作之后,如果我们测试线上完全一直或者多台服务器,可以通过指定不同角色来进行选择服务器的发布。

fab -R test(上面定义的角色) deploy -f fabfile.py

deploy这里还可以指定发布哪个分支的代码

这样指定某一个角色的服务器,某一个分支进行发布非常简单方便,对于经常使用的复杂命令操作我们还可以作为缩写命令来进行操作。

其他

类似我们要在docker里面进行docker-compose run --rm python manage.py migrate这种较长操作。

把操作写到fabfile.py里面的函数,就类似linux下面alias一样,fab migrate就完了简单方便。

除了上面,我们可以指定发布版本颜色进行区分发布成功出错与否,进行警示我们,非常方便快捷。

更多的大家可以参看fab -h更多参数含义,今天这个工具就介绍到这儿.

另外有不清楚docker-compose这个命令的参考我前面的文章。关于Python服务器运维,除了Fabric 还有SaltStack,Ansible更为复杂强大的管理工具,后期我们再进行分享,感谢你的关注。

一个坚持原创的Python公号

扫码免费加入

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190102G1G9IS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券