一、什么是fabric
Fabric是一个用Python编写的命令行工具,可简化使用SSH执行远程命令和部署应用程序的过程。Fabric提供了一个高层次的操作界面,使得可以轻松地将操作在远程服务器上进行。Fabric还支持串联一系列的操作,并允许根据执行结果来采取不同的操作。Fabric可以处理本地和远程任务,并使用SSH进行通信。
二、安装fabric
使用pip进行安装
pip install fabric
三、使用fabric进行代码上传部署
- 准备代码
在本地机器上,我们需要准备好需要部署的代码,包括Python脚本、资源文件等。可以将这些代码存放在本地的某个路径下。
- 创建部署脚本
首先,在本地创建一个fabfile.py
文件,这个文件就是用于定义部署任务的Python脚本。
from fabric.api import *
env.hosts = ['hostname'] # 远程主机的IP地址或者域名
env.user = 'username' # 远程主机的用户名
env.password = 'password' # 远程主机的登录密码
def upload():
with cd('/path/to/project'): # 进入到远程主机的工作目录下
put('local-path', 'remote-path') # 上传本地路径下的文件到远程主机指定路径下
这是一个最简单的部署脚本,只定义了上传本地文件到远程主机的任务。当然,随着部署的需要,我们可以定义更多的任务,包括启动、停止应用等任务。
- 执行部署脚本
进入到包含fabfile.py
的目录,执行以下命令:
fab upload
即可执行upload
任务。在上传的过程中,需要输入远程主机的登录密码。上传成功后,代码就被部署到了远程主机上。
- 示例说明
1) 将本地代码上传到远程主机
from fabric.api import *
env.hosts = ['127.0.0.1'] # 远程主机的IP地址或者域名
env.user = 'username' # 远程主机的用户名
env.password = 'password' # 远程主机的登录密码
def upload():
with cd('/path/to/project'): # 进入到远程主机的工作目录下
put('local-path', 'remote-path') # 上传本地路径下的文件到远程主机指定路径下
执行命令:
fab upload
即可将本地路径下的文件上传到远程主机。
2) 在远程主机上执行命令
from fabric.api import *
env.hosts = ['127.0.0.1'] # 远程主机的IP地址或者域名
env.user = 'username' # 远程主机的用户名
env.password = 'password' # 远程主机的登录密码
def deploy():
with cd('/path/to/project'): # 进入到远程主机的工作目录下
run('python main.py') # 在远程主机上执行main.py脚本
执行命令:
fab deploy
即可在远程主机上执行main.py脚本。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何通过python的fabric包完成代码上传部署 - Python技术站