Fabric是一个可以在远程机器上运行命令的库
Fabric官方目前只支持Python2版本,但是有勤劳的人开发出了适配Python3的版本。具体可以查看这个fork。
Fabric的使用
我在使用Fabric的时候主要是用于部署我的网站。使用时候,首先需要引入所有的API:
# 导入Fabric API: from fabric.api import *
这样就可以导入Fabric的API进行远程控制啦。
具体问题
- git需要输入密码
env.forward_agent = True
- ssh通过秘钥链接
# 使用秘钥 env.key_filename = ['/Users/xiuhao/.ssh/key']
- 使用root
# 服务器登录用户名: env.user = 'ubuntu' # sudo用户为root: env.sudo_user = 'root'
一个简单的部署例子
这个部署例子结合了更新代码,进入指定目录,运行命令等。
BASE_DIR = '/home/ubuntu/django_blog' def deploy(): """ deploy new changes """ with cd(BASE_DIR): run('git pull') run('make down') run('make up')
写好文件以后,保存为fabfile.py
,运行fab deploy
即可部署。deploy
对应着deploy()
函数。
NOTE:不在远程服务器上使用ssh的git仓库,是因为担心服务器被hack
连累我的git repo
。